public IList<MyItemClass> MyList{ get; }
在我看来,返回空集合而不是null值更好。
有许多实现此功能的方法。
public IList<MyItemClass> MyList{ get; private set; }
public MyClass(){
MyList = new List<MyItemClass>();
}
这种方法可以减少类字段的数量,但您需要在每个构造函数中放置代码。
private List<MyItemClass> _myList = new List<MyItemClass>();
public IList<MyItemClass> MyList{ get{ return _myList; } }
这是标准的方式。但是当有人向您的代码中写入内容时,他可以使用私有字段而不是属性,当您重构获取操作时可能会出现一些错误。
private List<MyItemClass> _myList;
public IList<MyItemClass> MyList{ get{ return _myList??(_myList = new List<MyItemClass>()); } }
这是先前的一种带有延迟加载的变体。
你更喜欢将什么作为集合的默认值返回?如果是空集合,你会如何实现它?