class SimpleNamedArguments
{
static void Dump(int x, int y, int z)//正常声明方法
{
Console.WriteLine("x={0} y={1} z={2}", x, y, z);
}
static void Main()//命名实参 简单例子使用命名实参
{
Dump(1, 2, 3);//都调用dump函数 参数的位置不固定就是 正常调用方法
Dump(x: 1, y: 2, z: 3);//为所有实参指定名称
Dump(z: 3, y: 2, x: 1);
Dump(1, y: 2, z: 3);//为部分实参指定名称
Dump(1, z: 3, y: 2);
}
}
在指定实参的值时,可以同时指定相应参数的名称。编译器将判断参数的名称是否正确,并将
指定的值赋给这个参数。
有了命名市场,参数顺序就是无关紧要的。
输出结果相同:x=1, y=2, z=3,代码用了5种不同方式对相同方法进行了有效地调用。值得注意的
是,方法的声明没有任何特殊的地方:你可以对任何包含参数的方法使用命名实参。用正常的方式
调用方法。不使用任何特性。这是验证所有调用的结果是否全部相同的参照点。然后我们只使用
命名实参对方法进行了两次调用。其中第二次打乱了实参的顺序,但得到的结果却是相同的,因为
实参是按照参数的名称来匹配的,而不再是参数的位置。最后,混合使用命名实参和位置实参,
又进行了两次调用。未命名的实参称为位置实参。
输出
x=1 y=2 z=3
x=1 y=2 z=3
x=1 y=2 z=3
x=1 y=2 z=3
x=1 y=2 z=3