首页 > 代码库 > C#终于支持可选参数了!
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 }
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 }
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#终于支持可选参数了!
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。