易丰科技

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3272|回复: 0
打印 上一主题 下一主题

c# 4.0 新功能 2/n

[复制链接]

111

主题

117

帖子

3588

积分

论坛元老

Rank: 8Rank: 8

积分
3588
跳转到指定楼层
楼主
发表于 2011-10-8 18:49:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Optional Parameters (选择性参数)
以往建构式(构造函式) 我们常会有多载,方法也常常会有多载如下:
  1. public class MyClass
  2.     {
  3.         string _name;
  4.         public MyClass():this("N/A")
  5.         { }
  6.         public MyClass(string name)
  7.         {
  8.             _name = name;
  9.         }
  10.     }

  11.     public class MyClass2
  12.     {
  13.         string _name;

  14.         public MyClass2(string name = "N/A")
  15.         {
  16.             _name = name;
  17.         }
  18.     }
  19.         
  20.     public class TestClass
  21.     {
  22.         public void Test()
  23.         {
  24.             MyClass c1 = new MyClass();
  25.             MyClass2 c2 = new MyClass2();
  26.         }
  27.     }
复制代码
如上例 MyClass 以及 MyClass2 两个类达到的效果是一样的
所以要多载方法时,也可以考虑使用选择性参数。
选择性参数,特别是用在呼叫 Excel 之类的 com 元件,许多的参数都可以因此省略,方便许多

选择性参数必须放在後面,如下:
public void MyMethod( int p1, int p2 = 5 );
反过来写是不行的。 public void MyMethod( int p1 = 5, int p2 ); // error

如果有两个方法
  1.         public void MyMethod(int p1, int p2 = 5)
  2.         { }
  3.         public void MyMethod(int p1)
  4.         { }
复制代码
当呼叫时只传入一个引数,则会优先叫用
  1. public void MyMethod(int p1)
复制代码



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|易丰科技

GMT+8, 2024-10-13 01:22 , Processed in 0.042003 second(s), 20 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表