IList: наследование интерфейсов
От: altarvic  
Дата: 06.11.07 06:49
Оценка:
На одном из форумов задали такой вопрос, но точного ответа не было. Процитирую:

"Интерфейс IList наследует интерфейсы ICollection и IEnumerable. Хотя ICollection уже наследует IEnumerable.
Тоже самое с IDictionary — он тоже наследует и ICollection, и IEnumerable.
Тоже самое с интерфейсами в System.Collections.Generic.
Насколько я понимаю интерфейсы в .NET, наследовать ICollection было бы достаточно, а наследование IEnumerable уже избыточно.
Тогда c какой целью явно указывается IEnumerable в предках? Для пущей ясности?"
Re: IList: наследование интерфейсов
От: Sinclair Россия https://github.com/evilguest/
Дата: 06.11.07 07:07
Оценка:
Здравствуйте, altarvic, Вы писали:

A>На одном из форумов задали такой вопрос, но точного ответа не было. Процитирую:


A>"Интерфейс IList наследует интерфейсы ICollection и IEnumerable. Хотя ICollection уже наследует IEnumerable.

A>Тоже самое с IDictionary — он тоже наследует и ICollection, и IEnumerable.
A>Тоже самое с интерфейсами в System.Collections.Generic.
A>Насколько я понимаю интерфейсы в .NET, наследовать ICollection было бы достаточно, а наследование IEnumerable уже избыточно.
A>Тогда c какой целью явно указывается IEnumerable в предках? Для пущей ясности?"
Список реализуемых интерфейсов всегда планаризуется на уровне метаданных. Сделано это для того, чтобы исчерпывающий список интерфейсов можно было получить без рекурсии.
Стоит отметить, что в исходниках на C# это не нужно. Т.е. вот такая декларация IList будет вполне законной:
[ComVisible(true)]
public interface IList : ICollection
{
    // Methods
    int Add(object value);
    void Clear();
    bool Contains(object value);
    int IndexOf(object value);
    void Insert(int index, object value);
    void Remove(object value);
    void RemoveAt(int index);

    // Properties
    bool IsFixedSize { get; }
    bool IsReadOnly { get; }
    object this[int index] { get; set; }
}
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.