c#中的可选参数和命名参数的使用

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     

执行结果:

 

 

posted @ 2014-04-14 19:06  思思博士  阅读(610)  评论(0)    收藏  举报