C#4.0 命名参数可选参数
2012-09-15 23:48
225 查看
c#4.0中新特性之一就是:命名参数和可选参数。
命名参数:调用方法时,可以不按位置传递参数,而是指定参数的命名来传值;
private void Func(string str,int number,bool flag){}
对于上面的函数,使用命名参数调用时可以是 Fun(flag:true,number:10,str:“zhangsan”);
可选参数:声明方法中的参数时,可以为其设置默认值,那么在调用该方法时,这种可选参数是可以忽略的;必须遵循以下几个原则:
1.可选参数必须有个编译时常量作为其默认值。如果是除String之外的引用类型(包括那个特殊的dynamic类型),默认值只能是null。
private void Func(string str,int a=10,People p=new People())这个声明是编译不过的;
2.可选参数必须在非可选参数之后出现,可选参数右边的参数(如果有的话)必须是可选参数。
private void Func(string str,int a=10,bool flag)这个声明也是编译不过的;
以 private void Func(string name, int age = 10, bool sex = false) {///do something; }为例说明对命名参数和可选参数的调用方法:
this.Func("zhangSan");//忽略全部可选参数
this.Func(sex: true, age: 30, name: "zhangsan");//采用命名参数,可以调换顺序;
this.Func("zhangsan", 20);//使用依次使用前面可选参数,可以不加可选参数名称;
this.Func("zhangsan", 30, true);//使用全部可选参数,可以不加可选参数名称;
this.Func("zhangsan", sex: false);//使用后面的可选参数,则必须使用可选参数名称;this.Func("zhangsan", false);是编译不了的;
this.Func("zhangsan", age: 40);
以上调用方式都正确;
命名参数:调用方法时,可以不按位置传递参数,而是指定参数的命名来传值;
private void Func(string str,int number,bool flag){}
对于上面的函数,使用命名参数调用时可以是 Fun(flag:true,number:10,str:“zhangsan”);
可选参数:声明方法中的参数时,可以为其设置默认值,那么在调用该方法时,这种可选参数是可以忽略的;必须遵循以下几个原则:
1.可选参数必须有个编译时常量作为其默认值。如果是除String之外的引用类型(包括那个特殊的dynamic类型),默认值只能是null。
private void Func(string str,int a=10,People p=new People())这个声明是编译不过的;
2.可选参数必须在非可选参数之后出现,可选参数右边的参数(如果有的话)必须是可选参数。
private void Func(string str,int a=10,bool flag)这个声明也是编译不过的;
以 private void Func(string name, int age = 10, bool sex = false) {///do something; }为例说明对命名参数和可选参数的调用方法:
this.Func("zhangSan");//忽略全部可选参数
this.Func(sex: true, age: 30, name: "zhangsan");//采用命名参数,可以调换顺序;
this.Func("zhangsan", 20);//使用依次使用前面可选参数,可以不加可选参数名称;
this.Func("zhangsan", 30, true);//使用全部可选参数,可以不加可选参数名称;
this.Func("zhangsan", sex: false);//使用后面的可选参数,则必须使用可选参数名称;this.Func("zhangsan", false);是编译不了的;
this.Func("zhangsan", age: 40);
以上调用方式都正确;
相关文章推荐
- C#4.0新特性 可选命名参数
- C#4.0新特性之(二)命名参数,可选参数与COM互操作
- C#4.0新特性(2):Named and Optional Arguments 命名参数和可选参数
- C#4.0新特性:可选参数,命名参数,Dynamic
- C#4.0新特性:可选参数,命名参数,Dynamic
- C#4.0新特性:可选参数,命名参数,Dynamic
- C#4.0新特性:可选参数,命名参数,Dynamic
- C#4.0新特性学习(一)—可选参数、命名参数、参数数组
- c#中的可选参数和命名参数的使用
- ylbtech-LanguageSamples-NamedAndOptional(命名和可选参数)
- VS2010与.NET4系列 17. C#4中的可选参数和命名参数
- C# 4.0 新特性dynamic、可选参数、命名参数等
- 深入C# 4.0 新特性dynamic、可选参数、命名参数的详细介绍
- c# 方法参数(传值,传引用,ref,out,params,可选参数,命名参数)
- C#方法参数:params,ref,out,可选参数,命名参数
- 命名参数、可选参数和默认值参数
- C#进阶可选参数和命名参数
- 《C#入门到精通》学习笔记 -- 命名参数与可选参数
- C# 4.0 新特性dynamic、可选参数、命名参数等
- C#新功能--命名参数与可选参数