a = b = 5 in VB.NET - impossible?

10,325

Solution 1

a = b = 5 means

if b = 5 then a = true else a = false

if you want to assign the value 5 to a and to b at the same time, you must add it on a separate line :

b = 5
a = b

you can also write them on the same line but using the vb.net line separator :

b = 5 : a = b

Solution 2

Because = in VB/VB.NET is also a comparison operator, so in that context it returns a boolean.

Solution 3

That's just the rules of the Basic language. Many languages uses different operators to distinguish between assingment and equality testing.

For example,

  • C/C++/C#/Java uses = and ==.
  • Pascal uses := and =.
  • Basic does not.
Share:
10,325
serhio
Author by

serhio

I like .NET and started learning PHP. email: gserhio[at]gmail[.]com

Updated on June 04, 2022

Comments

  • serhio
    serhio almost 2 years

    Is it possible in VB.NET doing a = b = 5? (I know that = is a comparison operator too)

    I mean do not result (if b = 2 by e.g.)

    a = false
    b = 2
    

    HOW to do it, however, in situations like bellow?


    The inconvenient caused this question in my code: some objects a, b, .. z are passed by ref in a method, if I don't initialize them compiler warns me that it shoudl be initialized(= Nothing by e.g.)

    Dim a, b, c, d, z As GraphicsPath ' = Nothing is impossible, only each a part
    DrawPaths(a, b, c, d, z)          ' DrawPaths sets a = new GraphicPath() etc.