VB.NET中“FunctionName = value”和“Return value”之间的区别?

时间:2013-09-20 12:41:01

标签: vb.net

在VB.NET函数中,您可以通过两种方式返回值。例如,如果我有一个名为“AddTwoInts”的函数,它将两个int变量作为参数,将它们一起添加并返回值,我可以将函数写为以下之一。

1)“返回”:

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

2)“功能=值”:

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

我的问题是:两者之间是否存在差异,或者使用其中一种的原因是什么?

2 个答案:

答案 0 :(得分:11)

在你的例子中,没有区别。但是,赋值运算符并不真正退出函数:

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

请不要使用第二种形式,因为它是从VB6继承的旧语言功能,以帮助迁移。

答案 1 :(得分:0)

您的示例中,两者之间没有区别。选择第一个的唯一真正原因是它与其他语言类似。其他语言不支持第二个示例。

正如已经指出的那样,对函数名的赋值不会导致函数返回。

两个例子生成的IL将是相同的。