NamedParameter
命名参数,C#4.0新增的另一个方法调用功能,利用命名参数,调用者可以显式指定参数名,并为该参数赋一个值,而不是像以前那样,只能依据参数顺序来决定哪个值赋给哪个参数。
1 using System; 2 3 namespace NamedParameter 4 { 5 class Program 6 { 7 static void Main(string[] args) 8 { 9 DisplayGreeting(firstName: "Zhang", lastName: "San"); 10 } 11 12 static void DisplayGreeting(string firstName, string middleName = default(string), string lastName = default(string)) 13 { 14 Console.WriteLine("You input the Full name is :{0},{1},{2}", firstName, middleName, lastName); 15 } 16 } 17 }
执行结果:
1 You input the Full name is :Zhang,,San 2 请按任意键继续. . .
总结:
优点:如果一个方法中有大量的参数,而且许多参数都是可选的,那么命名参数语法肯定能带来不少的便利。
缺点:同时,他也牺牲了方法接口的灵活性。过去,参数名可以自由更改,不会造成调用代码无法编译。但在添加了命名参数以后,参数名就成为方法接口的一部分,更改名称会导致命名参数的代码无法编译。