Tôi vừa mới phát hiện ra rằng .NET Fx hiện nay có 3 giao diện hữu ích:Tại sao HashSet <T> không triển khai IReadOnlyCollection <T>?
Và tôi chút nhầm lẫn tại sao HashSet<T>
không thực hiện IReadOnlyCollection<T>
? Có bất kỳ lý do gì, hoặc Microsoft chỉ quên về bộ lần nữa?
UPD
Sau hai giờ googling tôi đã tìm thấy rằng có rất nhiều bộ sưu tập trong BCL trong đó có .Count
tài sản nhưng không thực hiện giao diện IReadOnlyCollection<T>
.
UPD2
tôi đã tìm thấy bài này http://social.msdn.microsoft.com/Forums/en/netfxbcl/thread/b4fb991a-3f5c-4923-93d4-7cd5c004f859 và câu trả lời bằng cách Immo Landwerth nơi he've nói sau
bộ sưu tập khác Will ngoài Danh sách <> và từ điển <> được cập nhật để hỗ trợ các giao diện này?
Tuyệt đối. Trên thực tế, tất cả các loại bộ sưu tập được tích hợp sẵn của chúng tôi đã được triển khai IReadOnlyList <> và IReadOnlyDictionary <>. Điều này có nghĩa là, bạn có thể trực tiếp chuyển một phiên bản Danh sách, T [] hoặc Từ điển <> đến một API có phiên bản IReadOnly.
Ok, vậy tại sao [Danh sách] (http://msdn.microsoft.com/en-us/library/6sh2ey19 (v = vs.110)) có làm gì? –
hazzik
Lạ. Imho, một quyết định thiết kế không phù hợp. Xem http://www.infoq.com/news/2011/10/ReadOnly-WInRT/ –
Ở đâu có khoảng ISet? –
hazzik