2010-11-18 100 views

回答

4
private List<string> _names = new List<string>(); 

public List<string> Names 
{ 
    get {return _names;} 
    set {_names = value;} 
} 

如果您想直接使用

public List<string> Names { get; set; } 

,我除了用構造不知道。

1

方式一:

List<string> myList = new List<string>(); 
+0

我猜OP想要這個由編譯器自動完成。 – 2010-11-18 02:26:01

+0

@ icyrock.com,謝謝,我知道,並且正如我所顯示的,編譯器不會這樣做。 – Gabe 2010-11-18 02:32:09

1
public class Foo { 
    List<int> list = new List<int>(); 

    // details elided 
} 

現在list是永遠當你的任何實例方法正在執行null

1

他被問到沒有構造函數,所以我認爲答案是否定的 - 我正在想象他可能正在尋找你(不正確)感知堆棧中聲明的C++類與堆 - 你delcare變量的方式在堆棧中給出了這樣的錯覺,即當你將它看作沒有指針和對象引用的語言時,構造函數不會被調用。

我是新來依賴注入,所以我不確定,但也許可以這樣做的東西,有效地自動裝配所有的集合?

編輯:但真的 - 爲什麼?寫幾個單元測試來聲明沒有空值或什麼。遺忘構造成員變量讓我覺得「我需要爲自己做的事情和我想要的方式」做得很低圖騰

1

推遲列表構造的微妙變化 - 對於涉及WCF的一些場景很有用(它無需反序列化回調跳過這兩個構造字段初始):

public class MyType 
{ 
    private List<string> items; 
    public List<string> Items { get { 
     return items ?? (items = new List<string>()); } } 
} 
相關問題