我在这里有一个片段:
Dim a As Integer = 10 '<--- an integer variable inintialized with 10
a = byreferenceFun(a) '<---calling a function and assign the return value
Public Function byreferenceFun(ByVal a As Integer) '<-- function , no return type is specified
byreferenceFun = 30 ' <-- return 30 to the calling function
End Function
它们没有在函数中指定的返回类型,但它工作正常,returns
整数和字符串值;
我的问题是指定Public Function
的返回类型是否必要?或者是因为function that should return a value
?
答案 0 :(得分:1)
来自:Function Statement (Visual Basic)
returntype - 如果选项严格 开启,则必填。值的数据类型 通过这个程序返回。
答案 1 :(得分:1)
在某种意义上你没有必要关闭选项严格,但是大多数人认为关闭选项严格是一种不好的做法(除非你当然知道你为什么要这样做......)
如果你决定关闭option strict并在你的函数上放弃as子句,那么你的函数将返回一个'Object',它是所有对象继承的基类,你可以将该对象强制转换为您要分配的类型。
唯一的问题是,如果你的函数返回一个对象,并且该对象的类型为“string”,那么当你将函数的输出分配给一个整数时,编译器在运行时才显示错误,那么你会获得无效的强制转换异常。
示例:
Sub Calculate()
Dim result As Integer = GetCalculation()
End Sub
Function GetCalculation()
Return "hello world"
End Function