Phen
Phen

Reputation: 427

Difference between "FunctionName = value" and "Return value" in VB.NET?

In VB.NET functions you can return values in two ways. For example if I have a function called "AddTwoInts" which takes two int variables as parameters, add them together and return the value I could write the function either as one of the following.

1) "Return":

Function AddTwoInts(ByVal intOne As Integer, ByVal intTwo As Integer) As Integer
    Return (intOne + intTwo)
End Function

2) "Function = value":

Function AddTwoInts(ByVal intOne As Integer, ByVal intTwo As Integer) As Integer
    AddTwoInts = (intOne + intTwo)
End Function

My question is this: is there any difference between the two or a reason to use one over the other?

Upvotes: 8

Views: 1877

Answers (2)

dbasnett
dbasnett

Reputation: 11773

In your example there is no difference between the two. The only real reason for choosing the first is that it is similar to other languages. Other languages don't support the second example.

As has been pointed out, the assignment to the function name does not cause a return from the function.

The IL generated by the two examples will be identical.

Upvotes: 0

Nemanja Boric
Nemanja Boric

Reputation: 22157

In your example, there's no difference. However, assignment operator doesn't really exit the function:

Function AddTwoInts(ByVal intOne As Integer, ByVal intTwo As Integer) As Integer
    Return (intOne + intTwo)
    Console.WriteLine("Still alive") ' This will not be printed!
End Function


Function AddTwoInts(ByVal intOne As Integer, ByVal intTwo As Integer) As Integer
    AddTwoInts = (intOne + intTwo)
    Console.WriteLine("Still alive") ' This will  be printed!
End Function

Please don't use the second form, as it is the old language feature inherited from VB6 in order to help migration.

Upvotes: 13

Related Questions