C#中命名參數(shù)和可選參數(shù)
一、簡(jiǎn)介
設(shè)計(jì)方法的參數(shù)是,可以將部分參數(shù)和全部參數(shù)分配默認(rèn)值,然后調(diào)用這些方法的時(shí)候可以選擇不提供部分實(shí)參,使用參數(shù)定義的默認(rèn)值,另外,還可以在調(diào)用方法的時(shí)候通過(guò)指定參數(shù)名稱來(lái)傳遞實(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ù)順序無(wú)關(guān),和形參的名稱對(duì)應(yīng) //string t1="2"; //int32 t2=3; //Mothed(t2,t1,default(Datetime),new Guid()) } }
向方法傳遞實(shí)參時(shí),編譯器從左到右的順序?qū)?shí)參進(jìn)行求值。在對(duì)Mothed的第四個(gè)調(diào)用中s_n的當(dāng)前默認(rèn)值是0,先遞增然后等于1轉(zhuǎn)為string傳遞給s,然后繼續(xù)遞增到2(s_n++先使用后遞增)傳給x。
三、總結(jié)
1.實(shí)參可按照任意順序傳遞,但命名實(shí)參必須且只能出現(xiàn)在實(shí)參列表尾部,如上述代碼第三種調(diào)用方式。
2.可以按照名稱將實(shí)參傳遞給沒(méi)有默認(rèn)值的參數(shù)。但所有必須的實(shí)參都必須傳遞(無(wú)論按照位置還是按照名稱),編譯器才能編譯代碼。
3.C#不允許省略逗號(hào)之間的實(shí)參,比如M(1,,DateTime.New).因?yàn)檫@樣會(huì)造成可讀性的影響,程序員將被迫去讀 逗號(hào),對(duì)于沒(méi)有默認(rèn)值的參數(shù),如果想省略它們的實(shí)參,以傳參數(shù)名的方式傳遞實(shí)參即可。
到此這篇關(guān)于C#中命名參數(shù)和可選參數(shù)的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#實(shí)體類轉(zhuǎn)換的兩種方式小結(jié)
這篇文章主要介紹了C#實(shí)體類轉(zhuǎn)換的兩種方式小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01C#對(duì)桌面應(yīng)用程序自定義鼠標(biāo)光標(biāo)
這篇文章介紹了C#對(duì)桌面應(yīng)用程序自定義鼠標(biāo)光標(biāo)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06C#組件系列 你值得擁有的一款Excel處理神器Spire.XLS
又一款Excel處理神器Spire.XLS,這篇文章主要為大家詳細(xì)介紹了第三方組件Spire.XLS,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09C#中DateTimePicker默認(rèn)值顯示為空的問(wèn)題
這篇文章主要介紹了C#中DateTimePicker默認(rèn)值顯示為空的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06C#使用SQL DataAdapter數(shù)據(jù)適配代碼實(shí)例
今天小編就為大家分享一篇關(guān)于C#使用SQL DataAdapter數(shù)據(jù)適配代碼實(shí)例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-10-10C#編程中使用設(shè)計(jì)模式中的原型模式的實(shí)例講解
這篇文章主要介紹了C#編程中使用設(shè)計(jì)模式中的原型模式的實(shí)例講解,原型模式創(chuàng)建新對(duì)象方便快捷,而且可在運(yùn)行時(shí)根據(jù)需要通過(guò)克隆來(lái)添加和去除他們,也可在程序運(yùn)行是根據(jù)情況來(lái)修改類內(nèi)部的數(shù)據(jù),需要的朋友可以參考下2016-02-02