在下面看到的單例類的情況下,初始化MyList的正確方法是什麼?我是直接引用MyList(選項1)還是Instance.MyList(選項2)?這裏最好的做法是什麼?我的直覺說通過實例,但我是自己第二次猜測,無法在任何地方找到明確的答案。引用單身類中的私有單例屬性
public class Foo
{
private readonly static Lazy<Foo> _instance =
new Lazy<Foo>(() => new Foo());
private List<string> MyList;
public static Foo Instance
{
get { return _instance.Value; }
}
private Foo()
{
MyList = new List<string> {"a","b","c"}; //Option 1
Instance.MyList = new List<string> {"a","b","c"}; //Option 2
}
}
我不認爲這兩個選項之間有任何區別。就我個人而言,我喜歡使用'this.PropertyName',儘管VS一直在竊聽我刪除'this.'。 –
讓我更新一個更好的例子... – philorube
我不會從構造函數調用實例。再次,我不認爲應該有任何區別,但它似乎很奇怪。 –