1.可选实参要求:
(1):可选参数必须位于必选实参之后。
(2):可选参数的默认值必须为常量,如数字,常量字符串,null,const,成员,枚举成员。
(3):参数数组不能为可选参数(params int [] intput = null)
(4):用ref或者out关键字标识的参数不能设置为可选参数
static void TestMethod(int x,int y = 0,string name = "zhangsan")
{
Console.WriteLine("x = {0},y = {1},name = {2}",x,y,name);
}
2.命名实参
当调用可选参数的方法时,如果我们省略了一个参数,编译器默认我们省略的时最后一个参数,但是如果我们只想省略第二个参数时,这时候命名实参就出现了,
class Program :
{
static void Main(string[] args)
{
//省略name
TestMethod(2,14);
//省略y和name参数
TestMethod(2);
//为部分指定名称,使用命名实参,只是省略第二个
TestMethod(1,name:"lisi");
//所有的实参指定名称
TestMethod(x:2,y:20,name:"wangwu");
{
static void Main(string[] args)
{
//省略name
TestMethod(2,14);
//省略y和name参数
TestMethod(2);
//为部分指定名称,使用命名实参,只是省略第二个
TestMethod(1,name:"lisi");
//所有的实参指定名称
TestMethod(x:2,y:20,name:"wangwu");
Console.ReadKey();
}
static void TestMethod(int x,int y = 0,string name = "zhangsan")
{
Console.WriteLine("x = {0},y = {1},name = {2}",x,y,name);
}
}