Почему IList определяется как это?Почему IList <T> реализовать IEnumerable <T> и ICollection <T> в то время как ICollection <T> сам реализует IEnumerable <T>
public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable
public interface ICollection<T> : IEnumerable<T>, IEnumerable
public interface IEnumerable<T> : IEnumerable
не Может быть просто
public interface IList<T> : ICollection<T>
Таким образом, чтобы проверить, я создал эти интерфейсы, просто чтобы быть уверенным, что работает!
public interface IOne
{
string One();
}
public interface ITwo : IOne
{
string Two();
}
public interface IThree : ITwo, IOne
{
string Three();
}
В то время как его совершенно нормально, Решарр жалуется на «избыточные интерфейсы».
Любые идеи, почему Microsoft продолжила эту реализацию?
Где вы видели дублирование? (Каков ваш источник для источника 'IList', так сказать?) –
@JonSkeet: просто нажал 'F12' /' Перейти к определению' на 'IList'. Он показал мне «подпись метода» из «сборных метаданных». Просто посмотрел его оттуда. –
Как в стороне, полезно использовать обратные ссылки для вещей, которые действительно являются кодом. (Я отредактировал дополнительные бит из вашего сообщения) –