Tôi đang xem tờ khai của List<T>
và thấy rằng nó thực hiện IList<T>
, ICollection<T>
và IEnumerable<T>
(trong số những người khác).Tại sao một giao diện thực hiện một giao diện khác?
Sau đó, tôi đã đi để tìm định nghĩa của IList<T>
và thấy rằng nó thực hiện ICollection<T>
và IEnumerable<T>
.
Điểm của giao diện triển khai giao diện khác nếu chúng hoạt động giống như "hợp đồng" và chúng tôi không viết mã số thực vào chúng?
Triển khai này có tích lũy không? Nếu có, kể từ IList<T>
thực hiện ICollection<T>
và IEnumerable<T>
, List<T>
không được triển khai chỉ IList<T>
?
Xin lỗi nếu câu hỏi của tôi là khó hiểu, tôi là một bit litte bối rối ngay bây giờ.
Đó là để dễ đọc. Bạn không cần phải đi xa hơn để xem các hợp đồng quan trọng nhất. Nó cũng đảm bảo các hợp đồng không thay đổi đáng kể nếu 'ICistection' –
zerkms
thực sự là một giao diện không thực hiện bất cứ điều gì nhưng nó có thể kế thừa từ các giao diện khác –
@zerkms: Bạn nên làm cho câu trả lời đó! – Ryan