原文 http://www.cnblogs.com/lonelyxmas/admin/EditPosts.aspx?opt=1
C#方法的可选参数是.net 4.0最新提出的新的功能,对应简单的重载可以使用可选参数和命名参数混合的形式来定义方法;这样就可以很高效的提供代码的运行效率!
设计一个方法的参数的时,可为部分或全部参数分配默认值。调用其方法时,可以重新指定分配了默认值的参数,也可以使用默认值
重新指定分配默认值的参数时,可以显式地为指定参数名称赋值,隐式指定的时候,是根据方法参数的顺序,靠c#编译器的推断。
1
2
3
4
5
6
7
8
9
10
|
void M( int x=9, string s= "a" ,DateTime dt = default (DateTime))
{...} Main() { M(); //使用默认值
M(8, "b" ): //隐式指定方法参数,没有指定的使用默认值
M(6, "v" ,DateTime.Now); //同上
M(6,dt:DateTime.Now); //显式的指定参数名称,为指定的参数传值
} |
使用的指导原则:
1、可以为方法和有参属性指定默认值
2、有默认值的参数,必须定义在没有默认值的参数之后
3、默认参数必须是常量
4、ref 和 out参数不能指定默认值