命名实参和可选实参(C#)
C# 2010 引入了命名實參和可選實參。 利用“命名實參”,您將能夠為特定形參指定實參,方法是將實參與該形參的名稱關聯,而不是與形參在形參列表中的位置關聯。
? 利用“可選實參”,您將能夠為某些形參省略實參。 這兩種技術都可與方法、索引器、構造函數和委托一起使用。
在使用命名實參和可選實參時,將按實參出現在實參列表(而不是形參列表)中的順序計算這些實參。
命名形參和可選形參一起使用時,您將能夠只為可選形參列表中的少數形參提供實參。
命名實參
有了命名實參,您將不再需要記住或查找形參在所調用方法的形參列表中的順序。 可以按形參名稱指定每個實參的形參。
例如,可以采用標準方式調用計算身體質量指數 (BMI) 的函數,方法是依照該函數定義的順序按位置發送體重和身高的實參。
CalculateBMI(123, 64);
如果不記得形參的順序,但卻知道其名稱,您可以按任意順序(先發送體重或先發送身高)發送實參。
CalculateBMI(weight: 123, height: 64);CalculateBMI(height: 64, weight: 123);
命名實參還可以標識每個實參所表示的含義,從而改進代碼的可讀性。
例如:
可選實參
方法、構造函數、索引器或委托的定義可以指定其形參為必需還是可選。 任何調用都必須為所有必需的形參提供實參,但可以為可選的形參省略實參。
每個可選形參都具有默認值作為其定義的一部分。 如果沒有為該形參發送實參,則使用默認值。 默認值必須為常量。
可選形參在形參列表的末尾定義,位于任何必需的形參之后。 如果調用方為一系列可選形參中的任意一個形參提供了實參,則它必須為前面的所有可選形參提供實參。 實參列表中不支持使用逗號分隔的間隔。 例如:
?
class OptionalExample {// 命名參數和可選參數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){// 通用調用方式Search("Sue", 22, "New York");// 省略city可選參數Search("Mark", 23);//命名實參Search("Lucy", city: "Cairo");// 命名參數的順序和形參順序不相同Search("Pedro", age: 45, city: "Saigon");//實參列表中不支持使用逗號分隔的間隔//此處將導致編譯錯誤//Search("Pedro", ,"Saigon");}} IntelliSense 使用括號指示可選形參,如下圖所示注意:還可以通過使用 .NET OptionalAttribute 類來聲明可選形參。 OptionalAttribute 形參不需要默認值。
轉載于:https://www.cnblogs.com/dreamzyl/archive/2011/04/07/2007889.html
總結
以上是生活随笔為你收集整理的命名实参和可选实参(C#)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序出错后,程序员给测试人员的20条高频
- 下一篇: 植物神经紊乱去医院应该挂什么科室呢?