Это может быть старый вопрос: почему IEnumerable<T>
унаследовать от IEnumerable
?Почему IEnumerable <T> наследуется от IEnumerable?
Вот как это делает .NET, но это приносит небольшую проблему. Каждый раз, когда я пишу класс, реализует IEumerable<T>
, мне нужно написать две функции GetEnumerator()
, одну для IEnumerable<T>
, а другую для IEnumerable
.
И, IList<T>
не наследуется от IList.
Я не знаю, почему IEnumerable<T>
спроектирован другим способом.
Это очень интересно ... Мне было очень досадно, что `IList` не наследовал `IList`, но как только вы примете дисперсию во внимание, это начинает иметь смысл ... –
2009-11-29 01:01:04
Плохо, что Microsoft никогда не определяла IReadableByIndex и IReadableByIndex (Of Out T), которые могли быть унаследованы IList и IList (Of T). IReadableByIndex может быть унаследован IReadableByIndex (Of T) без труда, и дисперсия индексируемых коллекций, доступных только для чтения, была бы очень приятной. – supercat 2011-01-16 23:06:01