C#中默认参数
C#中默认参数函数的默认参数值,即在定义参数的时候同时给它一个初始值。在调用函数的时候,我们可以省略含有默认值的参数。也就是说,如果用户指定了参数值,则使用用户指定的值,否则使用默认参数的值。
一、默认参数常见场景
1、一个函数的可能会有很多参数,但是有些参数大部分时候都是固定值。
2、当一个函数需要增加参数时,为了不影响之前的用户,将新增加的参数作为默认参数。
二、默认参数实例
public void Func(string i = 1, string f = 2, string d = 3) { return i + "," + f +"," + d; } public string Computer() { Func() ; // 1, 2, 3 Func("10") ; // 10, 2, 3 Func("10", "20") ; // 10, 20, 3 Func("10", "20", "30") ; // 10, 20, 30 return "" ; }
参数的值也可以是表达式,这样,表达式将在函数被调用的时候求值,比如下面的func函数,第二个参数值是通过函数调用得到的,每次调用func函数时,该函数都会调用getValue来获取b的值。
例如
class Test { public int getValue() { return 1; } public int func(int a, int b = getValue()) { return b; } }
三、默认参数的使用原则
1、默认的参数只能是后面的参数,不能是中间的参数。也就是说,如果参数A是默认的参数,那么A后面的所有参数都必须是默认的。
2、一般不把默认参数当做一个判断条件去用。如果有这个需求,都是可以通过分解函数来实现。
3、默认参数必须是发生的概率非常大。
4、默认参数必须是有意义的值,如果发现无法定义一个默认参数值,那么请用重载。