为了确保列表属性永远不会返回 null,我这样声明它:
private IList<Item> _myList;
[NotNull]
public IList<Item> MyList
{
get { return _myList ?? new List<Item>(); }
set { _myList = value; }
}
这行得通,但我讨厌语法。考虑到我应该在我的项目中广泛使用这种技术,我正在寻找一种更好的方法来编写这个或更好的解决同一问题的方法。有什么想法吗?
最佳答案
这是一个很好的方法,但是每次需要 MyList
并且 _myList
为 null 时,您将创建一个新的空列表...所以如果 _myList
为空,有人执行 MyList.Add(item);
它不会被添加到正确的列表中。
最好这样做:
private IList<Item> _myList;
[NotNull]
public IList<Item> MyList
{
get { return _myList ?? (_myList = new List<Item>()); }
set { _myList = value; }
}
这样,第一次 _myList
为空时,您创建了一个新列表。然后,_myList
将不会为 null。
关于永远不应返回 null 的 List 属性的 C# 快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41444789/