C#4.0 命名参数可选参数
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);
以上調用方式都正確;
轉載于:https://www.cnblogs.com/rpoplar/archive/2012/09/15/2687110.html
總結
以上是生活随笔為你收集整理的C#4.0 命名参数可选参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: YEAH!!距离拿回touch4倒计时:
- 下一篇: [Turn]C# 强制关闭当前程序进程(