有关 C# 命名参数和可选参数
#1、命名参数:
所谓“命名参数 ( Named Arguments )”,是指方法中定义了一些“有名字”的参数。
给方法参数命名之后,在调用方法时就可以直接根据参数名字传送实参,不再像原来一样需要依据方法定义时的参数顺序传送。
假设有一下的方法:
static void SomeMethod ( int x1, int x2, int y1, int y2 )
{ .......... }
在 .net 4.0 中可以这样调用方法:
SomeMethod ( 100, 200, 300, 400 ); // 传统方式,严格按照参数定义的顺序传送实参
SomeMethod ( x1: 100, y1: 300, x2: 200, y2: 400 ); // 命名方式,次序无关紧要
SomeMethod ( 100, y2: 400, x2: 200, y1: 300 ); // 混合方式
以“混合方式”调用方法时,位于命名参数前面的参数称为“位置参数(Positional Arguments)”,是不容随便更换位置的。因此,命名参数“群”一定集中位于方法调用参数列表的后半部分。
#2、可选参数:
所谓“可选参数(Optional Arguments)”,是指给方法的特定参数指定的默认值,在调用方法时,可以省略掉这些参数。
例如,假设有以下方法:
static void Test ( int required, string optionalString = "Default Value" )
{ .......... }
则一下两种调用方法都是可执行的:
Test ( 100 ); //optionalString 参数拥有默认参数值 “Default Value”
Test ( 100, "New Value" ); //optionalString 参数的值为 “New Value”