C#中到底有没有接口继承接口这个概念?

public interface IEnumerable

public interface ICollection : IEnumerable

public interface IList : ICollection, IEnumerable

看上面的代码,这格式F12跳入metadata元数据中看到的定义
为什么IList不直接写

public interface IList : ICollection

到底有没有接口继承接口这个概念?
我尝试了下:

public interface IA

{

void a();

}

public interface IB : IA

{

void b();

}

public interface IC : IB

{

void c();

}

public class Hello : IC

{

public void a() { }

public void b() { }

public void c() { }

}

然后编译出来,编译器居然帮我们加上了IA

clipboard.png

那到底实际上底层是接口有继承接口的概念的吗,还是说没有,编译器帮我们加上,让我们错以为是有这个概念,原本就继承的东西没理由帮我们还多此一举的加上

回答:

编译器这么做应该是为了执行的时候更快速(这样就不需要再找IB继承过什么接口了),语法有时候就是一些包装,只是方便程序编写,为了性能,编译器当然会做一些优化(个人是这么理解的)

回答:

当然有继承接口的概念。IC: IB, IA只是“这样写也不认为错”,正常情况下只需要写IC: IB就够了。

以上是 C#中到底有没有接口继承接口这个概念? 的全部内容, 来源链接: utcz.com/p/190340.html

回到顶部