在继承列表中显式继承“祖父”接口

时间:2011-02-04 13:39:59

标签: c# linq inheritance interface

我正在查看IOrderedQueryable<T>界面,发现它继承自IQueryable<T>,但也来自System.Collections.Generic.IEnumerable<T>IQueryableIEnumerable

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 :(得分:0)

类会自动继承这些“祖父”接口,因此您不必明确指定它们。所以,给定这些接口:

interface IBase {}
interface IChild: IBase {}

其中任何一个都没问题:

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

文档只列出了祖先接口for convenience and clarity:“文档在一个地方完成比让你搜索十个不同的页面以找出完整的接口集是什么更清楚。 。“