2012-05-02 107 views

回答

2

這將是C++,但你標記了你的問題C#。 C#沒有初始化列表的概念,您只需在構造函數中指定您的字段。但是,您可以構造鏈或調用基類的構造函數以類似的方式

// call base class constructor before your own executes 
public class B : A 
{ 
    public B(int whatever) 
     : base(something) 
    { 
     // more code here 
    } 
} 

// call secondary constructor 
public class B : A 
{ 
    private int _something; 

    public B() : this(10) { } 

    public B(int whatever) 
    { 
     _something = whatever; 
    } 
} 
+0

感謝。我認爲它可能在C#中,這就是爲什麼標籤在那裏。 – JNF

+1

@JNF,C#有這麼多咕嚕的工作... – thepoosh

+0

@Thepoosh:是的,編寫'someVar = someArg'比編寫'someVar(someArgs)'更乏味。你必須開玩笑說C#需要比C++更多的樣板代碼...必須是... –

3

有簡單的方法構造這樣後,初始化類字段:

public class A 
    { 
    public int N; 
    public string S; 
    public A() {} 
    } 

    class B 
    { 
    void foo() 
    { 
     A a = new A() { N = 1, S = "string" } 
    } 
    } 
+0

謝謝,我正在尋找的是接受的答案,但這也很棒。 – JNF

相關問題