何时使用“out”而不是“ref”
在“out”和“ref”参数之间进行选择时,除非特别需要“ref”,否则预设选择是“out”。
Out 与 Ref 的区别
“ref”允许方法修改作为参数传递的变量的原始值,而“out”则禁止这种能力。当涉及跨进程或跨机器的数据传输时,这种区别变得至关重要,因为编组初始值可能会导致不必要的处理。
适合使用“out”的场景
考虑以下场景:
<code class="language-c#">person.GetBothNames(out a, out b);</code>
假设“person”是一个对象,“GetBothNames”是一个检索两个值的方法,则“a”和“b”的初始值与方法的操作无关。在这种情况下,使用“in”或“out”是偏好问题,“out”是推荐的选择,以消除初始值的无用编组。
适合使用“ref”的场景
另一方面,当修改初始值是方法意图的一部分时,“ref”是合适的:
<code class="language-c#">bool didModify = validator.SuggestValidName(ref name);</code>
“name”参数通过引用传递,允许“validator”方法更改其值并返回“didModify”以指示更改。
简而言之,在大多数情况下,如果不需要修改初始变量值,“out”是更好的选择;而当需要进行此类修改时,“ref”则变得必要。
以上是C# 中的 Out 与 Ref 参数:什么时候应该使用哪个?的详细内容。更多信息请关注PHP中文网其他相关文章!