C#终于支持可选参数了!

Posted Rocken.li

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#终于支持可选参数了!相关的知识,希望对你有一定的参考价值。

今天偶然看了一下C#4.0的新特性, 第一个新特性就令我兴奋不已, 曾经一度令我使用C#很不习惯的"死参数"问题终于搞定了.
实在太爽了!

过去用C++, VB.NET的时候都很爽, 开始用C#了发现怎么没有这个功能, 令我很难受, 一直不明白是C#设计的问题还是其中实现起来太复杂啊, 不过这回终于OK了.

 

代码
 1     class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             Show();
 6             Show("TonyKent");
 7             Console.ReadLine();
 8         } 
 9 
10         public static void Show(string msg = "")
11         {
12             Console.WriteLine("Hello {0}",msg);
13         }
14     }

 

参数默认值, 有了这个, 好多方法的重载可以减少了~ 

2010-09-06  补充:
在使用命名参数时, 如果使用多个可选参数, 必须都放在参数列表的最后.
而且在调用方法时, 可以选择对可选参数进行赋值, 如下:

代码
 1 class Program
 2 {
 3     static void Main(string[] args)
 4     {
 5         Show("2010-09-06");
 6         Show("2010-09-06""World""Morning");
 7         Show("2010-09-06", msg: "Morning");
 8         Console.ReadLine();
 9     } 
10 
11     public static void Show(string date, string name = "TonyKent"string msg = "")
12     {
13         Console.WriteLine("{0} Hello {1} {2}!", date, name, msg);
14     }
15 }

 

上面代码执行结果如下:
2010-09-06 Hello TonyKent!
2010-09-06 Hello World Morning!
2010-09-06 Hello  Morning!

可见, 可选参数选择使用时, 用参数名+":"去直接命名强制使用.

 
 
 

 

以上是关于C#终于支持可选参数了!的主要内容,如果未能解决你的问题,请参考以下文章

为啥 C# 允许通过可选参数进行模棱两可的函数调用?

C#可选参数与具名参数

C# 4.0,可选参数和参数不能一起工作

设置 C# 可选参数的默认值

C# 参数可选特性

C#基础 可选参数调用params无参静态构造函数