易丰科技

标题: c# 4.0 新功能 2/n [打印本页]

作者: Calvin    时间: 2011-10-8 18:49
标题: c# 4.0 新功能 2/n
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)
复制代码








欢迎光临 易丰科技 (http://forum.yftek.com/) Powered by Discuz! X3