2010-04-15 193 views
3

我有這樣一個構造函數:如何從c#中的構造函數調用其他構造函數?

public Blah(string a, string b) 
{ 

} 

public Blah(string a, string b, string c) 
{ 
    this.a =a; 
    this.b =b; 
    this.c =c; 
} 

我怎麼能說從第一一個第二構造?

,如:

public Blah(string a, string b) 
{ 
    Blah(a,b, ""); 
} 
+4

順便說一句,這通常被稱爲構造函數鏈。 – R0MANARMY 2010-04-15 15:29:40

回答

9
public Blah(string a, string b) : this(a, b, "") 
{ 
} 

public Blah(string a, string b, string c) 
{ 
    // etc 
} 
+1

最好使用String.Empty而不是「」 – abatishchev 2010-04-15 15:32:05

+0

@abatishchev:你有參考嗎?就我而言,這僅僅取決於個人喜好,而且你會發現更多的可讀性。我更喜歡''「'。 「 – LukeH 2010-04-15 15:34:03

+1

」「(可能)創建一個對象,String.empty不會。 – 2010-04-15 15:42:38

5
public Blah(string a, string b): this(a, b, String.Empty) 
{ 

} 

public Blah(string a, string b, string c) 
{ 
    this.a =a; 
    this.b =b; 
    this.c =c; 
} 
+0

+1:這是一個更好的完整答案示例。 – IAbstract 2010-04-15 15:33:18

1
public Blah(string a, string b) : this(a,b, "default_C_String") 
{ 

} 

---無論你所需的默認值是爲C ...

-2

公共布拉赫(字符串,字符串二): this(a,b,String.Empty) {

}

+0

這個答案和已經給出的答案完全一樣。 – nutlike 2013-03-02 16:27:25

+0

@nutlike ...唯一的區別是它沒有格式化;-) – kleopatra 2013-03-02 16:34:09