我似乎記得某種速記的方法來初始化發送到構造函數的類的領域,像:有沒有辦法在C#中用構造函數初始化字段?
Class A {
int n;
public A(int N) : n(N) {}
}
任何線索?
我似乎記得某種速記的方法來初始化發送到構造函數的類的領域,像:有沒有辦法在C#中用構造函數初始化字段?
Class A {
int n;
public A(int N) : n(N) {}
}
任何線索?
這將是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;
}
}
有簡單的方法構造這樣後,初始化類字段:
public class A
{
public int N;
public string S;
public A() {}
}
class B
{
void foo()
{
A a = new A() { N = 1, S = "string" }
}
}
謝謝,我正在尋找的是接受的答案,但這也很棒。 – JNF
感謝。我認爲它可能在C#中,這就是爲什麼標籤在那裏。 – JNF
@JNF,C#有這麼多咕嚕的工作... – thepoosh
@Thepoosh:是的,編寫'someVar = someArg'比編寫'someVar(someArgs)'更乏味。你必須開玩笑說C#需要比C++更多的樣板代碼...必須是... –