在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
我的问题是:两者之间是否存在差异,或者使用其中一种的原因是什么?
答案 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将是相同的。