我在前一段時間發現(我想再次確認),如果您聲明瞭一個類級別的變量,那麼在調用類構造函數或加載之前,您不應該調用它的構造函數。原因是表現 - 但還有其他原因要做還是不做?這個規則是否有例外?聲明變量 - 最佳實踐
即:這是我做的依據是什麼,我認爲最好的做法是什麼:
public class SomeClass
{
private PersonObject _person;
public SomeClass()
{
_person = new PersonObject("Smitface");
}
}
反對:
public class SomeClass
{
private PersonObject _person = new PersonObject("Smitface");
public SomeClass()
{
}
}
您的評論並不真正適用在這裏。無論使用哪種方法,變量都將同時進行初始化。 – Herms 2008-10-29 18:40:22
評論者的編輯評論有一個好處 - 如果我有一個字段與初始化,我知道它將被初始化。如果我在一個包含20個構造函數的類中有一個字段,那麼很難確保變量在被使用之前被初始化。 Eric Lippert的帖子使這更加真實。 – 2008-10-29 23:16:39