C# 方法参数与重载全解析
输出参数(out)
在 C# 里,定义输出参数的方法,必须在退出方法作用域之前,给参数赋一个有效值。要是不这么做,像下面的代码就会导致编译器报错:
static void ThisWontCompile(out int a)
{
Console.WriteLine("Error! Forgot to assign output arg!");
}
这里的输出参数 a
没有在方法作用域内被赋值,所以会报错。
丢弃输出参数(C# 7.0 新特性)
要是你不关心输出参数的值,就可以用丢弃符( _
)当作占位符。丢弃符是临时的虚拟变量,故意不使用它们。它们未被赋值,没有值,甚至可能都不会分配内存。这样做既能提升性能,还能让代码更易读。丢弃符可以和输出参数、元组、模式匹配一起用,甚至能作为独立变量。
示例代码如下:
// This only gets the value for a, and ignores the other two parameters
FillTheseValues(out int a, out _, out _);
要注意,被调用的方法还是会为所有三个参数设置值,只是方法调用返回时,最后两个参数被丢弃了。
构造函数和初始化器中的 out 修饰符(C# 7.3 新特性)
C# 7.