In VB6, you could call this sub in one of two ways:
foo “Hello ”
Call foo(“Hello ”)
In VB.NET, you also could call this sub in one of two ways:
Foo(“Hello ”)
Call foo(“Hello ”)
The difference, of course, is that the parentheses are always required in the VB.NET
calls, even though you aren’t returning anything. The Call statement is still sup-ported,
but it is not really necessary.
Changes to Boolean Operators
The And , Not , and Or operators were to have undergone some changes. Microsoft
originally said that the operators would short-circuit, but now they are staying the
way they worked in VB6. This means that in VB.NET, as in VB6, if you had two
parts of an And statement and the first failed, VB6 still examined the second part.
Examine the following code:
Dim x As Integer
Dim y As Integer
x =1
y =0
If x =2 And y =5/y Then
...
As a human, you know that the variable x is equal to 1 . Therefore, when you look at
the first part of the If statement, you know that x is not equal to 2 , so you would log-ically
think it should quit evaluating the expression. However, VB.NET examines the
second part of the expression, so this code would cause a divide-by-zero error.
If you want short-circuiting, VB.NET has introduced a couple of new operators:
AndAlso and OrElse . In this case, the following code would not generate an error in
VB.NET:
Dim x As Integer
Dim y As Integer
x =1
y =0
If x =2 AndAlso y =5/y Then
...
This code does not cause an error; instead, because x is not equal to 2 , VB.NET does
not even examine the second condition.