2012-06-11 167 views
2

說我有這樣的:是否有創建C#成語然後添加到集合?

private list<myClass> myCollection; 

有一個編程成語來縮短這個很普通的語句組合成一個單一的聲明? :

if (myCollection == null) 
     myCollection = new list<myCollection>(); 

    myCollection.Add(someInstanceOfMyClass); 

成語可以描述爲「創造必要時再添加到它」

TIA。

回答

4

爲什麼就不能創建在聲明?:

private readonly List<myClass> myCollection = new List<myCollection>(); 

實例化一個列表不是時間或內存費力的事情。 (如果你有成千上萬個,想要懶惰的實例化,可能會有所不同)。

+0

不,我沒有上千,不需要延遲實例。所以感謝您的快速回復,併爲新手問題感到抱歉。 (雖然它與我的個人資料一致)。 – philologon

1

可以做這樣的事情:

private List<myClass> myCollection { get { 
    if (_myCollection == null) _myCollection = new List<myCollection>(); 
    return _myCollection; 
}} 
private List<myClass> _myCollection; 

再後來:

myCollection.Add(someInstance); 

,它將調用的getter方法,檢查空。

但它可能會更好,只是創建列表一旦按Mitch Wheat's answer

相關問題