C#输出参数

时间:2014-11-07 11:50:38

标签: c# .net

为什么在离开当前方法之前必须将out参数分配给它? 有人可以详细说明shell内部的内容吗?提前谢谢。

2 个答案:

答案 0 :(得分:3)

  

为什么在离开当前方法之前必须将out参数分配给它?

out参数视为额外的返回值。正如您无法在不指定返回值的情况下从非void方法返回一样,您无法从具有out参数的方法返回,而无需为参数设置值。

这反过来允许在方法完成后明确赋值out参数的参数,因为它肯定会被方法赋值:

int value;
Foo(out value);
Console.WriteLine(value); // This is fine

答案 1 :(得分:1)

因为它是以这种方式设计的。这是outref参数之间的区别。通过将参数声明为out,该方法可以保证它将设置值论证。通过ref,它没有必要。如果你不想out使用ref