命名参数和可选参数

设计一个方法的参数的时,可为部分或全部参数分配默认值。调用其方法时,可以重新指定分配了默认值的参数,也可以使用默认值。

重新指定分配默认值的参数时,可以显式地为指定参数名称赋值,隐式指定的时候,是根据方法参数的顺序,靠c#编译器的推断。

代码示例:

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参数不能指定默认值

posted @ 2016-12-21 17:23  zmztyas  阅读(204)  评论(0编辑  收藏  举报