【发布时间】:2017-01-03 13:38:07
【问题描述】:
为了确保列表属性永远不会返回 null,我这样声明:
private IList<Item> _myList;
[NotNull]
public IList<Item> MyList
{
get { return _myList ?? new List<Item>(); }
set { _myList = value; }
}
这行得通,但我讨厌这种语法。考虑到我应该在整个项目中广泛使用这种技术,我正在寻找一种更好的方法来编写这个或更好地解决同一问题。有什么想法吗?
【问题讨论】:
-
private readonly IList<Item> _myList = new List<Item>()这将确保它永远不会为空 -
如果我错了,请纠正我,但是即使你将_myList初始化为一个新的List,这并不意味着它的值以后不能设置为null。
-
@tocqueville true,只能在类的构造函数中设置。