Явно наследовать интерфейс «прародителя» в списке наследования - PullRequest
0 голосов
/ 04 февраля 2011

Я смотрел на интерфейс IOrderedQueryable<T> и заметил, что он наследует от IQueryable<T>, а также от System.Collections.Generic.IEnumerable<T>, IQueryable и IEnumerable

public interface IOrderedQueryable<T> : 
    System.Linq.IQueryable<T>,
    System.Collections.Generic.IEnumerable<T>,
    System.Linq.IOrderedQueryable,
    System.Linq.IQueryable,
    System.Collections.IEnumerable 

Мой вопросIQueryable<T> уже наследует от этих других интерфейсов, почему IOrderedQueryable должен явно указывать / наследовать от них?Почему бы просто не наследовать от System.Linq.IQueryable<T> и System.Linq.IOrderedQueryable.

Очевидно, этот вопрос применим и к наследованию интерфейса в целом.

1 Ответ

0 голосов
/ 04 февраля 2011

Классы автоматически наследуют эти «родительские» интерфейсы, поэтому вам не нужно указывать их явно. Итак, учитывая эти интерфейсы:

interface IBase {}
interface IChild: IBase {}

Любой из них в порядке:

interface IGrandChild: IChild {}
interface IGrandChild: IBase, IChild {}

В документации просто перечислены интерфейсы-предки для удобства и ясности : "Гораздо понятнее, чтобы документация была завершена целиком в одном месте, чем поиск по десяти различным страницам, чтобы выяснить, что полный набор интерфейсов: "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...