|
Optional Parameters (选择性参数)
以往建构式(构造函式) 我们常会有多载,方法也常常会有多载如下:
- public class MyClass
- {
- string _name;
- public MyClass():this("N/A")
- { }
- public MyClass(string name)
- {
- _name = name;
- }
- }
- public class MyClass2
- {
- string _name;
- public MyClass2(string name = "N/A")
- {
- _name = name;
- }
- }
-
- public class TestClass
- {
- public void Test()
- {
- MyClass c1 = new MyClass();
- MyClass2 c2 = new MyClass2();
- }
- }
复制代码 如上例 MyClass 以及 MyClass2 两个类达到的效果是一样的
所以要多载方法时,也可以考虑使用选择性参数。
选择性参数,特别是用在呼叫 Excel 之类的 com 元件,许多的参数都可以因此省略,方便许多
选择性参数必须放在後面,如下:
public void MyMethod( int p1, int p2 = 5 );
反过来写是不行的。 public void MyMethod( int p1 = 5, int p2 ); // error
如果有两个方法
- public void MyMethod(int p1, int p2 = 5)
- { }
- public void MyMethod(int p1)
- { }
复制代码 当呼叫时只传入一个引数,则会优先叫用- public void MyMethod(int p1)
复制代码
|
|