7

在 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

我的问题是:两者之间有什么区别,或者有理由使用一个而不是另一个?

4

2 回答 2

12

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

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 继承的旧语言功能,以帮助迁移。

于 2013-09-20T12:43:47.123 回答
0

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

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

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

于 2013-09-20T13:49:11.660 回答