Khi tài sản có một số loại bộ sưu tập nhưProperties của bộ sưu tập kiểu
public IList<MyItemClass> MyList{ get; }
IMHO, nó tốt hơn để trở lại bộ sưu tập trống thay vì giá trị null.
Có nhiều cách để thực hiện chức năng như vậy.
public IList<MyItemClass> MyList{ get; private set; }
public MyClass(){
MyList = new List<MyItemClass>();
}
Cách này cho phép giảm số lượng trường lớp, nhưng bạn cần phải đặt mã trong mỗi hàm tạo.
private List<MyItemClass> _myList = new List<MyItemClass>();
public IList<MyItemClass> MyList{ get{ return _myList; } }
Đây là cách tiêu chuẩn. Nhưng khi ai đó viết một cái gì đó cho mã của bạn, anh ta có thể sử dụng trường riêng thay vì thuộc tính và bạn có thể nhận được một số lỗi khi bạn refactor có được hành động.
private List<MyItemClass> _myList;
public IList<MyItemClass> MyList{ get{ return _myList??(_myList = new List<MyItemClass>()); } }
Và đây là biến thể của cách trước đó với tải chậm.
Bạn muốn trở lại làm giá trị mặc định cho bộ sưu tập là gì? Nếu đây là bộ sưu tập trống, làm thế nào để bạn thực hiện nó?