Nếu tôi phơi bày bộ thành viên nội bộ thông qua một tài sản Collection qua:Bộ sưu tập <T> có bao gồm IList <T> hoặc liệt kê trên IList <T> không?
public Collection<T> Entries
{
get { return new Collection<T>(this.fieldImplimentingIList<T>); }
}
Khi thuộc tính này được gọi là những gì sẽ xảy ra? Ví dụ: những gì xảy ra khi các dòng mã sau đây được gọi là:
T test = instanceOfAbove.Entries[i];
instanceOfAbove[i] = valueOfTypeT;
Rõ ràng mỗi khi thuộc tính này được gọi là loại tham chiếu mới được tạo nhưng điều gì xảy ra một cách tình cờ? Nó chỉ đơn giản là bọc IList<T>
bên dưới, nó liệt kê trên IList<T>
và để tạo ra một ví dụ Collection<T>
mới? Tôi lo ngại về hiệu suất nếu thuộc tính này được sử dụng trong vòng lặp for
.
'Bộ sưu tập' kết thúc tốt đẹp 'IList '. Tại sao bạn trả lại nó làm Bộ sưu tập ? Tại sao không hiển thị nó như là một IE2 có thể đếm được ? Bạn đang cố gắng để ngăn chặn sửa đổi vào danh sách cơ bản? –
Cảm ơn câu hỏi! Tôi đã không nghĩ rằng Bộ sưu tập chỉ là một trình bao bọc trong danh sách;) –