我想知道在某個對象中創建列表的最佳方法是什麼。C#創建列表<T>在初始化vs得到
1)DefA「always」事先佔用內存,即使它永遠不會被調用,對嗎?
2)DefB將「總是」必須檢查空條件還是編譯器優化?
3)有沒有更好的實現方法?
感謝
private List<A> _defA = new List<A>();
public List<A> DefA
{
get { return _defA; }
}
private List<B> _defB;
public List<B> DefB
{
get
{
if (_defB == null)
_defB = new List<B>();
return _defB;
}
}
您如何期望編譯器優化第二種情況下的檢查?至於「更好」 - 這取決於你是否在意懶惰。你有沒有具體的證據表明* *不必要的清單*或*空檢查實際上對你的應用程序有重大影響? –
認爲在多線程訪問財產的情況下,A和B的行爲可能會有所不同。 – tym32167
這對於[CodeReview](http://codereview.stackexchange.com/)是一個很好的問題。 –