class SimpleOptionalParameters
{
static void Dump(int x, int y = 20, int z = 30)//声明包含可选参数的方法
{
Console.WriteLine("x={0} y={1} z={2}", x, y, z);
}
static void Main()//可选参数 声明包含可选参数的方法并调用
{
Dump(1, 2, 3);//执行Dump
Dump(1, 2);//省略一个实参
Dump(1);//省略两个参数
}
}
指定了默认值的参数为可选参数。如果调用者没有指定y,它的初始值将为20,同样z的默认值为
30。第一次调用显式制定了所有的实参,其余的调用分别省略了1个和2个参数,因此将使用其
默认值。当漏掉一个实参时,编译器假设省略的为最后一个参数,然后是倒数第二个。
尽管编译器可以对可选参数和实参进行一些智能分析,来确定省略的参数类型,但它并美哟这么
做:它假设我们提供的实参顺序与参数定义的顺序是一样的。
输出
x=1 y=2 z=3
x=1 y=2 z=30
x=1 y=20 z=30