Всем привет!
В C# есть коллекция ICollection(T), которая объявлена следующим образом:
public interface ICollection<T> : IEnumerable<T>, IEnumerable
{
int Count { get; }
bool IsReadOnly { get; }
void Add(T item);
void Clear();
bool Contains(T item);
void CopyTo(T[] array, int arrayIndex);
bool Remove(T item);
}
Данная коллекция наследует два интерфейса IEnumerable(T) и IEnumerable. Вопрос зачем повторно наследуется интерфейс IEnumerable, если IEnumerable(T) уже наследует данный интерфейс?
public interface IEnumerable<out T> : IEnumerable
{
IEnumerator<T> GetEnumerator();
}
Я конечно понимаю что так можно делать и что тут ничего страшного нету. Но зачем? Может я чего-то не понимаю?