命名实参和可选实参(C#)
C# 2010 引入了命名實(shí)參和可選實(shí)參。 利用“命名實(shí)參”,您將能夠?yàn)樘囟ㄐ螀⒅付▽?shí)參,方法是將實(shí)參與該形參的名稱關(guān)聯(lián),而不是與形參在形參列表中的位置關(guān)聯(lián)。
? 利用“可選實(shí)參”,您將能夠?yàn)槟承┬螀⑹÷詫?shí)參。 這兩種技術(shù)都可與方法、索引器、構(gòu)造函數(shù)和委托一起使用。
在使用命名實(shí)參和可選實(shí)參時(shí),將按實(shí)參出現(xiàn)在實(shí)參列表(而不是形參列表)中的順序計(jì)算這些實(shí)參。
命名形參和可選形參一起使用時(shí),您將能夠只為可選形參列表中的少數(shù)形參提供實(shí)參。
命名實(shí)參
有了命名實(shí)參,您將不再需要記住或查找形參在所調(diào)用方法的形參列表中的順序。 可以按形參名稱指定每個(gè)實(shí)參的形參。
例如,可以采用標(biāo)準(zhǔn)方式調(diào)用計(jì)算身體質(zhì)量指數(shù) (BMI) 的函數(shù),方法是依照該函數(shù)定義的順序按位置發(fā)送體重和身高的實(shí)參。
CalculateBMI(123, 64);
如果不記得形參的順序,但卻知道其名稱,您可以按任意順序(先發(fā)送體重或先發(fā)送身高)發(fā)送實(shí)參。
CalculateBMI(weight: 123, height: 64);CalculateBMI(height: 64, weight: 123);
命名實(shí)參還可以標(biāo)識(shí)每個(gè)實(shí)參所表示的含義,從而改進(jìn)代碼的可讀性。
例如:
可選實(shí)參
方法、構(gòu)造函數(shù)、索引器或委托的定義可以指定其形參為必需還是可選。 任何調(diào)用都必須為所有必需的形參提供實(shí)參,但可以為可選的形參省略實(shí)參。
每個(gè)可選形參都具有默認(rèn)值作為其定義的一部分。 如果沒有為該形參發(fā)送實(shí)參,則使用默認(rèn)值。 默認(rèn)值必須為常量。
可選形參在形參列表的末尾定義,位于任何必需的形參之后。 如果調(diào)用方為一系列可選形參中的任意一個(gè)形參提供了實(shí)參,則它必須為前面的所有可選形參提供實(shí)參。 實(shí)參列表中不支持使用逗號(hào)分隔的間隔。 例如:
?
class OptionalExample {// 命名參數(shù)和可選參數(shù)public static void Search(string name, int age = 21, string city = "Pueblo"){Console.WriteLine("Name = {0} - Age = {1} - City = {2}", name, age, city);}static void Main(string[] args){// 通用調(diào)用方式Search("Sue", 22, "New York");// 省略city可選參數(shù)Search("Mark", 23);//命名實(shí)參Search("Lucy", city: "Cairo");// 命名參數(shù)的順序和形參順序不相同Search("Pedro", age: 45, city: "Saigon");//實(shí)參列表中不支持使用逗號(hào)分隔的間隔//此處將導(dǎo)致編譯錯(cuò)誤//Search("Pedro", ,"Saigon");}} IntelliSense 使用括號(hào)指示可選形參,如下圖所示注意:還可以通過使用 .NET OptionalAttribute 類來聲明可選形參。 OptionalAttribute 形參不需要默認(rèn)值。
轉(zhuǎn)載于:https://www.cnblogs.com/dreamzyl/archive/2011/04/07/2007889.html
總結(jié)
以上是生活随笔為你收集整理的命名实参和可选实参(C#)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序出错后,程序员给测试人员的20条高频
- 下一篇: 植物神经紊乱去医院应该挂什么科室呢?