在C#4.0之前,调用一个方法的话,必须严格的按照参数的个数,类型,甚至参数的先后顺序和方法保持一致。
但在C#4.0中可以解决这个问题。
1,可选参数。
可以理解成两个情况:①一个参数如果在没特殊指定的情况下,给定一个默认值。②另外一种情况就是指定了这个参数的值的话,则不用按照默认值。这样不用每次都判断或者需要写重载函数。
代码如下:
class Program { static void Main(string[] args) { Program program=new Program(); int m=program.Add(10); //此处m=11;默认b=1; int n=program.Add(10,20);//此处n=30;其中b=20; } public int Add(int a ,int b=1) { return a+b; //在调用函数时候若不指定b的值,则默认为1; } }
2,命名参数
可选参数解决的是参数的默认值问题,而命名参数解决的是参数的 顺序问题。我们一般是按照方法定义时候的参数顺序来决定方法被调用时候的参数顺序,比如:
class Program { static void Main(string[] args) { Program program=new Program(); int m=5; int n=30; int result=program.GetLastNum(y: n,x:m);//注意此处。x和y的位置的互换。 //没有按照方法中的要求的顺序 } public int GetLastNum(int x,int y) { if(x<y) { return x; } return 0; }