通常我發現我有空引用錯誤,導致我忘了初始化類中的集合屬性。有沒有辦法自動做到這一點,而不使用建築師。我們可以初始化集合屬性,當我們在類中聲明它
1
A
回答
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>();
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>()); } }
}
相關問題
- 1. 許多隻讀屬性,我什麼時候初始化它們?
- 2. 我們可以通過它的順序獲取Groovy類的聲明屬性嗎?
- 3. c + +我可以聲明類成員,並在構造函數中初始化它
- 4. 我們可以在類聲明中聲明類的類型指針嗎?
- 5. 我們可以在這個python類聲明中調用foo嗎?
- 6. 我們可以整合聲納嗎?
- 7. 初始化集合中的屬性
- 8. Java - 我們可以從初始化程序中返回嗎?
- 9. 我們是否應該聲明一個集合類或接口?
- 10. 我可以初始化mem初始化程序中的聯合?
- 11. 我們如何初始化結構上的List類型屬性?在vb.net
- 12. 我們是否聲明'jQuery或者我們只是使用它?
- 13. 我可以在html標籤內使用struts標籤來初始化它們的屬性嗎?
- 14. 我們可以初始化動態字符串數組
- 15. 我們可以計算Spring bean的初始化時間
- 16. NameID,聲明屬性 - 我應該使用哪一個,以及它們的含義
- 17. 我們可以在類別中設置只讀屬性...?
- 18. 我們可以在javascript函數中調用類屬性嗎?
- 19. 我們可以有genric屬性嗎?
- 20. C++:我們可以收集類型嗎?
- 21. 我們可以把(空,空)在地圖類型集合休眠...?
- 22. 我們可以在QML文件中聲明全局變量嗎?
- 23. 我們可以在fitnesse中使用哪種聲明
- 24. 我們可以在Java中聲明空數組嗎?
- 25. 我們可以在app.config文件中聲明變量
- 26. 我們可以在java中聲明class是'private'嗎?
- 27. 我們可以聲明式設置Web控件的Style屬性嗎?
- 28. 我們可以使用類似JSON的語法使用LINQ初始化對象/集合嗎?
- 29. 我們可以在plpgsql函數的開始 - 結束塊中聲明變量嗎?
- 30. 我們可以在我們的AMP
我猜OP想要這個由編譯器自動完成。 – 2010-11-18 02:26:01
@ icyrock.com,謝謝,我知道,並且正如我所顯示的,編譯器不會這樣做。 – Gabe 2010-11-18 02:32:09