VB.NET 没有 return 值的函数,转换为 C# 会出现 return 错误?

VB.NET Function with no return value, converted to C# gets return errors?

正在转换一些 VB.NET 代码。一些静态函数对一些通过引用传递的参数做一些工作,但不 return 任何东西。 VB.NET 函数中到底发生了什么,它们可以在没有 return 值的情况下存在并且不会出现任何调试错误?布尔值会怎样?

Overloads Shared Function ExampleMethod(ByRef buffer1() as Byte, ByRef buffer2() as Byte) As Boolean
'do stuff here, no return types
End Function

Overloads Shared Function ExampleMethod(ByRef buffer1() as Byte, ByRef buffer2 as Byte) As Boolean
'do stuff here, no return types
End Function

https://msdn.microsoft.com/en-us/library/sect4ck6.aspx

使用 VB.Net 你可以 return 通过 或者 使用 Return 语句,或者为函数名称赋值,例如:

    ExampleMethod = true
    Exit Function
End Function

接着说:

If you use Exit Function without assigning a value to name, the procedure returns the default value for the data type that's specified in returntype. If returntype isn't specified, the procedure returns Nothing, which is the default value for Object.

C# 更严格一些!