Trả về bộ sưu tập chỉ đọc nếu bạn muốn kiểm soát sửa đổi của nó

Hãy xem lại ví dụ sau:

đặt hàng lớp công cộng

{

danh sách riêng < OrderItem > _orderItems = new List < OrderItem > ();

 

công cộng ReadOnlyCollection < OrderItem > OrderItems

{

nhận được { return _orderItems.AsReadOnly (); }

}

 

public void AddOrderItem ( OrderItem orderItem)

{

_orderItems.Add (orderItem);

}

}

Lớp học có một thuộc tính chung của một loại bộ sưu tập và tôi muốn có “kiểm soát truy cập” vào bộ sưu tập này. Điều tôi muốn nói là, người tiêu dùng trong các lớp này không thể thêm OrderItemtrực tiếp vào bộ sưu tập, vì một số hành động bổ sung cần phải được thực hiện. Anh ta nên luôn luôn sử dụng AddOrderItemphương pháp nếu anh ta muốn thêm một OrderItemvào Order.

Trong các trường hợp như vậy, giữ bộ sưu tập cá nhân, tạo ra các phương pháp cần thiết để cung cấp truy cập kiểm soát cần thiết cho bộ sưu tập và tạo ra một thuộc tính chung trả về một thể hiện chỉ đọc của bộ sưu tập (bằng cách sử dụng phương thức List <T> .AsReadOnly ) bạn có thể lặp lại qua bộ sưu tập, thay đổi các thể hiện hiện tại của các đối tượng trong bộ sưu tập, nhận được số đối tượng trong bộ sưu tập, v.v.

Leave a Reply

Your email address will not be published. Required fields are marked *