C#输出参数
本文关键字:参数 输出 | 更新日期: 2023-09-27 18:29:37
为什么out参数在离开当前方法之前需要赋值?有人能详细说明一下外壳里发生了什么吗?提前谢谢。
为什么必须在out参数离开当前方法之前将其指定给它?
将out
参数视为一个额外的返回值。正如您不能在不指定返回值的情况下从非void方法返回一样,您也不能在不设置out
参数值的条件下从具有该参数的方法返回。
这反过来又允许在方法完成后明确地分配out
参数的自变量,因为方法肯定会给它一个值:
int value;
Foo(out value);
Console.WriteLine(value); // This is fine
因为它是这样设计的。这就是out
和ref
参数之间的差异。通过将参数声明为out
,该方法保证将设置参数的值。通过ref
,它不必。如果你不想要out
,请使用ref
。