【发布时间】:2011-06-12 21:35:15
【问题描述】:
我们以接口IQueryable<T>为例:
public interface IQueryable<T> : IQueryable, IEnumerable;
因为 IQueryable 又实现了 IEnumerable:
public interface IQueryable : IEnumerable;
为什么在第一个声明中,IQueryable 也必须显式实现 IEnumerable?这与不必显式从“祖父母”继承的类继承不同?
【问题讨论】:
-
“IQueryable 必须显式实现 IEnumerable”——来源? “明确实施”是什么意思?
-
@strager:在 MSDN 文档中,如果您查看 IQueryable
的声明,您会看到类似于我帖子中的第一个声明,其中 IQueryable 显式实现了两个 IQueryable还有IEnumerable,我觉得是多余的。 -
它是因为像c#这样的语言支持接口继承,但IL不...所以编译器会在编译代码时直接为你显式实现所有接口。
-
见泡利的解释和我的例子。您将看到文档和元数据是如何生成的。
标签: .net asp.net linq inheritance