为什么在离开当前方法之前必须将out参数分配给它? 有人可以详细说明shell内部的内容吗?提前谢谢。
答案 0 :(得分:3)
为什么在离开当前方法之前必须将out参数分配给它?
将out
参数视为额外的返回值。正如您无法在不指定返回值的情况下从非void方法返回一样,您无法从具有out
参数的方法返回,而无需为参数设置值。
这反过来允许在方法完成后明确赋值out
参数的参数,因为它肯定会被方法赋值:
int value;
Foo(out value);
Console.WriteLine(value); // This is fine
答案 1 :(得分:1)
因为它是以这种方式设计的。这是out
和ref
参数之间的区别。通过将参数声明为out
,该方法可以保证它将设置值论证。通过ref
,它没有必要。如果你不想out
使用ref
。