2010-04-15 191 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