Когда свойство имеет некоторый тип коллекции, например
public IList<MyItemClass> MyList{ get; }
ИМХО, лучше возвращать пустую коллекцию вместо нулевого значения.
Есть много способов реализовать такую функциональность.
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>()); } }
А это вариант предыдущего способа с ленивой загрузкой.
Что вы предпочитаете возвращать в качестве значения по умолчанию для коллекции? Если это пустая коллекция, как вы ее реализуете?