C#中到底有没有接口继承接口这个概念?
public interface IEnumerablepublic 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
那到底实际上底层是接口有继承接口的概念的吗,还是说没有,编译器帮我们加上,让我们错以为是有这个概念,原本就继承的东西没理由帮我们还多此一举的加上
回答:
编译器这么做应该是为了执行的时候更快速(这样就不需要再找IB继承过什么接口了),语法有时候就是一些包装,只是方便程序编写,为了性能,编译器当然会做一些优化(个人是这么理解的)
回答:
当然有继承接口的概念。IC: IB, IA只是“这样写也不认为错”,正常情况下只需要写IC: IB就够了。
以上是 C#中到底有没有接口继承接口这个概念? 的全部内容, 来源链接: utcz.com/p/190340.html