我想弄清楚这是否可行/正确的语法使其工作。我想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条经验 获得超7个赞
让我们介绍一下支持字段 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 关注
- 119 浏览
添加回答
举报
0/150
提交
取消