参数也是可选的。 必须为可选参数提供默认值。 可选参数还必须是方法定义的最后的参数:
public void TestMethod(int notOptionalNumber, int optionalNumber = 42)
{
Console.WriteLine(notOptionalNumber + optionalNumber );
}
这个方法可以使用一个或两个参数调用。 传递一个参数,编译器就修改方法调用, 给第二个参数传递 42.
TestMethod(1);
TestMethod(1,2);
可以定义多个可选参数,如下所示:
public void TestMethod(int n, int opt1 = 11, int opt2 = 22, int opt3 = 33)
{
Console.WriteLine(n + opt1 + opt2 + opt3);
}
这样,该方法就可以使用 1、2、3 或 4 个参数调用。
通过多个可选参数,命名参数的特性就发挥作用。 使用命名参数, 可以传递任何可选参数,例如,下面的例子仅传递最后一个参数:
TestMethod(1, opt3: 4);