Почему Ilist реализует как Icollection, так и Ienumerable, хотя Icollection: Ienumerable

1

Icollection реализуется из Ienumberable (ICollection: IEnumerable), то почему снова Icollection & IEnumerable оба реализуют для IList (интерфейс IList: ICollection, IEnumerable).

  • 0
    Вы неправы. Можете ли вы показать источник для вашего заявления?
Теги:
interface

3 ответа

2

Ваше предположение неверно.

Исходный источник для System.Collections.IList показывает, что он определяется как

public interface IList : ICollection

Это было бы справедливо и означало бы точно то же самое, если бы IEnumerable был указан там, но вопреки тому, что ваш вопрос говорит, это не так.

  • 0
    Извините, все, что вы говорите, на самом деле не ожидание.
  • 0
    @MadhusudhanVIndian Э ... Что? Вы спросили, почему IList определяется как IList : ICollection, IEnumerable вместо просто IList : ICollection как вы и ожидали, не так ли? Я думаю , что я достаточно убедительно показал , что она определяется только как IList : ICollection .
Показать ещё 3 комментария
1

Документация показывает все реализованные интерфейсы для пояснения, чтобы вы могли легко увидеть все реализованные интерфейсы (я предполагаю, почему вы спрашиваете об этом).

В коде эти две версии являются эквивалентными:

IList<T> : ICollection<T>

IList<T> : ICollection<T>, IEnumerable<T>
  • 0
    Не прошу, основываясь на документации цели. Реальная подпись сама, как это. Если вы говорите, он просто показывает все имя интерфейса более высокого уровня. Значит ли это, что он показывает для всех.?
-2

Интерфейс ICollection расширяет IEnumerable.

IList - это более специализированный интерфейс, расширяющий ICollection.

источник: http://msdn.microsoft.com/en-us/library/system.collections.icollection%28v=vs.110%29.aspx (см. примечания)

  • 0
    Как это отвечает на вопрос?
  • 0
    Я хочу уточнить, что интерфейс не реализует методы другого интерфейса, а просто расширяет их.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню