a = b = 5 in VB.NET - impossible?
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.
serhio
I like .NET and started learning PHP. email: gserhio[at]gmail[.]com
Updated on June 04, 2022Comments
-
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.