C#中命名參數(shù)和可選參數(shù)
一、簡介
設計方法的參數(shù)是,可以將部分參數(shù)和全部參數(shù)分配默認值,然后調用這些方法的時候可以選擇不提供部分實參,使用參數(shù)定義的默認值,另外,還可以在調用方法的時候通過指定參數(shù)名稱來傳遞實參。
二、代碼案例
class Program { private static int s = 0; private static int s_n = 0; private static void Mothed(int x = 9, string s = "A", DateTime dt = default(DateTime), Guid guid = new Guid()) { Console.WriteLine("x={0},s={1},dt={2},guid={3}", x, s, dt, guid); } static void Main(string[] args) { Mothed();//等同于Mothed(9,"A",default(Datetime),new Guid()) Mothed(8, "X");//等同于Mothed(8,"X",default(Datetime),new Guid()) Mothed(5, guid: Guid.NewGuid(), dt: DateTime.Now);//等同于Mothed(5,"A",DateTime.Now,Guid.NewGuid()) Mothed(s_n++, s_n++.ToString());//等同于Mothed(0,"1",default(Datetime),new Guid()); Mothed(s: (s_n++).ToString(), x: s_n++);//等同于一下兩行代碼,注意此處的參數(shù)順序無關,和形參的名稱對應 //string t1="2"; //int32 t2=3; //Mothed(t2,t1,default(Datetime),new Guid()) } }
向方法傳遞實參時,編譯器從左到右的順序對實參進行求值。在對Mothed的第四個調用中s_n的當前默認值是0,先遞增然后等于1轉為string傳遞給s,然后繼續(xù)遞增到2(s_n++先使用后遞增)傳給x。
三、總結
1.實參可按照任意順序傳遞,但命名實參必須且只能出現(xiàn)在實參列表尾部,如上述代碼第三種調用方式。
2.可以按照名稱將實參傳遞給沒有默認值的參數(shù)。但所有必須的實參都必須傳遞(無論按照位置還是按照名稱),編譯器才能編譯代碼。
3.C#不允許省略逗號之間的實參,比如M(1,,DateTime.New).因為這樣會造成可讀性的影響,程序員將被迫去讀 逗號,對于沒有默認值的參數(shù),如果想省略它們的實參,以傳參數(shù)名的方式傳遞實參即可。
到此這篇關于C#中命名參數(shù)和可選參數(shù)的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
C#組件系列 你值得擁有的一款Excel處理神器Spire.XLS
又一款Excel處理神器Spire.XLS,這篇文章主要為大家詳細介紹了第三方組件Spire.XLS,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-09-09C#使用SQL DataAdapter數(shù)據(jù)適配代碼實例
今天小編就為大家分享一篇關于C#使用SQL DataAdapter數(shù)據(jù)適配代碼實例,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10