我正在查看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
。
显然,这个问题一般也适用于接口继承。
答案 0 :(得分:0)
类会自动继承这些“祖父”接口,因此您不必明确指定它们。所以,给定这些接口:
interface IBase {}
interface IChild: IBase {}
其中任何一个都没问题:
interface IGrandChild: IChild {}
interface IGrandChild: IBase, IChild {}
文档只列出了祖先接口for convenience and clarity:“文档在一个地方完成比让你搜索十个不同的页面以找出完整的接口集是什么更清楚。 。“