我想弄清楚這是否可行/正確的語法使其工作。我想null在屬性級別添加新項目時對我的列表進行檢查,而不是null每次向列表添加項目時都進行檢查。例如:MyClass someClass = new MyClass(){ MyClassID = 1, Notes = null};////Note newNote = new Note(){ NoteID = 1, Text = "Test note"};someClass.Notes.Add(newNote); // This line will throw an error because // someClass.Notes is null我想通過執行以下代碼來解決這個問題。但是,我不知道是否/什么語法可以實現這一點。public class MyClass{ public int MyClassID { get; set; } public List<Note> Notes { get; set; public void Add(Note note) { if (this.Notes == null) this.Notes = new List<Note>(); this.Notes.Add(note); } }}public class Note{ public int NoteID { get; set; } public string Text { get; set; }}** 我知道我可以在執行之前進行空檢查someClass.Notes == null并將其分配給,但我想在屬性級別執行此操作,這樣我就不必每次需要添加時都復制這兩行代碼新筆記。new List<Note>().Add(newNote)
2 回答

holdtom
TA貢獻1805條經驗 獲得超10個贊
最好在構造函數中初始化列表MyClass
public class MyClass
{
public MyClass()
{
Notes = new List<Note>();
}
}

qq_遁去的一_1
TA貢獻1725條經驗 獲得超8個贊
讓我們介紹一下支持字段 private List<Note> m_Notes:
public class MyClass
{
public int MyClassID { get; set; }
// Empty list by default
private List<Note> m_Notes = new List<Note>();
public List<Note> Notes
{
get
{
return m_Notes;
}
set // If you really want "set" in the context
{
// Assign empty list if value is null
m_Notes = value ?? new List<Note>();
}
}
}
- 2 回答
- 0 關注
- 170 瀏覽
添加回答
舉報
0/150
提交
取消