Tại sao IList định nghĩa như thế này?Tại sao IList <T> thực hiện IEnumerable và ICollection <T><T> khi ICollection <T> tự thực hiện IEnumerable <T>
public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable
public interface ICollection<T> : IEnumerable<T>, IEnumerable
public interface IEnumerable<T> : IEnumerable
Không thể nó chỉ là
public interface IList<T> : ICollection<T>
Vì vậy, để kiểm tra tôi tạo ra các giao diện, chỉ để đảm bảo nếu mà làm việc!
public interface IOne
{
string One();
}
public interface ITwo : IOne
{
string Two();
}
public interface IThree : ITwo, IOne
{
string Three();
}
Trong khi hoàn toàn tốt, Resharper than phiền về "Giao diện thừa".
Mọi ý tưởng tại sao Microsoft tiếp tục triển khai này?
Bạn đã thấy bản sao ở đâu? (Nguồn của bạn là gì cho nguồn 'IList ', vậy để nói?) –
@JonSkeet: Chỉ cần nhấn' F12'/'Đi tới định nghĩa' trên' IList '. Nó cho tôi thấy 'chữ ký phương thức' từ' metadata metadata'. Chỉ cần xem nó từ đó. –
Như một sang một bên, nó rất hữu ích để chỉ sử dụng backticks cho những thứ mà thực sự mã. (Tôi đã chỉnh sửa các bit thừa trong bài đăng của bạn) –