何时使用“out”而不是“ref”
在“out”和“ref”参数之间进行选择时,除非特别需要“ref”,否则预设选择是“out”。
Out 与 Ref 的区别
“ref”允许方法修改作为参数传递的变量的原始值,而“out”则禁止这种能力。当涉及跨进程或跨机器的数据传输时,这种区别变得至关重要,因为编组初始值可能会导致不必要的处理。
适合使用“out”的场景
考虑以下场景:
person.GetBothNames(out a, out b);
假设“person”是一个对象,“GetBothNames”是一个检索两个值的方法,则“a”和“b”的初始值与方法的操作无关。在这种情况下,使用“in”或“out”是偏好问题,“out”是推荐的选择,以消除初始值的无用编组。
适合使用“ref”的场景
另一方面,当修改初始值是方法意图的一部分时,“ref”是合适的:
bool didModify = validator.SuggestValidName(ref name);
“name”参数通过引用传递,允许“validator”方法更改其值并返回“didModify”以指示更改。
简而言之,在大多数情况下,如果不需要修改初始变量值,“out”是更好的选择;而当需要进行此类修改时,“ref”则变得必要。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3