在什么样的情况下,最好使用引用参数来返回值?
Sub Example(byref value as integer)
value = 3
End Sub
在什么情况下最好返回值(可能在更复杂类型的结构中)?
Function Example() as integer
return 3
End Function
答案 0 :(得分:1)
一般情况下,我会避免使用引用参数来返回值。
设计指南建议避免这种情况,这就是Microsoft代码分析工具在找到它时发出警告的原因。Do not pass types by reference.
返回值几乎总是更易于维护,而不是通过引用传递参数,除非有非常具体的需要这样做。如果您要生成新值,请将其返回。
答案 1 :(得分:1)
当您想要返回操作的状态或状态以及操作的结果时。
想到TryParse..it将转换结果返回为true或false,并通过ref变量返回转换后的值。
Dim number As Integer
Dim result As Boolean = Int32.TryParse(value, number)
Public Shared Function TryParse ( _
s As String, _
<OutAttribute> ByRef result As Integer _
) As Boolean
但除此之外,正如其他人建议我不会使用ref那么多,它会使代码很难阅读和调试。
答案 2 :(得分:0)
这实际上取决于功能的作用。但是,通常情况下,如果只有一个返回,则调用者按值更容易。他们可以做到:
int foo = Example(foo)
或:
int modifiedFoo = Example(foo)
他们喜欢。