C#4.0之后出现了一个可选参数这个特性.
1 class Cal 2 { 3 static void Main(string[] args) 4 { 5 test1 t = new test1(); 6 t.Add(20, 13); 7 t.Add(14); 8 } 9 10 } 11 class test1 12 { 13 public void Add(int a, int b = 1) 14 { 15 Console.WriteLine(a + b); 16 } 17 }
执行结果:
这个特性虽然好用,但是也不是随便就可以用的.现在看看这个特性的使用规则.
1.可选参数不能是第一个参数,它必须位于所有必选参数之后;
2.可选参数必须指定一个默认值;
3.可选参数的默认值必须是一个常量表达式,不能为变量;
4.所有可选参数以后的参数必须是可选参数.
命名参数可以让我们在调用方式的时候,不用按照给定的顺序传参,而是根据指定的参数名来传参的.
1 class test 2 { 3 static void Main(string[] args) 4 { 5 Point p = new Point(); 6 Console.WriteLine(p.Cal(200, 100));//0 7 Console.WriteLine(p.Cal(width:200,length:100));//20000 8 } 9 10 } 11 12 class Point{ 13 public int Cal(int length,int width) { 14 if (length < width) { 15 return length * width; 16 } 17 return 0; 18 } 19 } 20
执行结果: