C#输出参数

本文关键字:参数 输出 | 更新日期: 2023-09-27 18:29:37

为什么out参数在离开当前方法之前需要赋值?有人能详细说明一下外壳里发生了什么吗?提前谢谢。

C#输出参数

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

out参数视为一个额外的返回值。正如您不能在不指定返回值的情况下从非void方法返回一样,您也不能在不设置out参数值的条件下从具有该参数的方法返回。

这反过来又允许在方法完成后明确地分配out参数的自变量,因为方法肯定会给它一个值:

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

因为它是这样设计的。这就是outref参数之间的差异。通过将参数声明为out,该方法保证将设置参数的值。通过ref,它不必。如果你不想要out,请使用ref