C#中到底有没有接口继承接口这个概念?
本文介绍了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
那到底实际上底层是接口有继承接口的概念的吗,还是说没有,编译器帮我们加上,让我们错以为是有这个概念,原本就继承的东西没理由帮我们还多此一举的加上
解决方案
编译器这么做应该是为了执行的时候更快速(这样就不需要再找IB继承过什么接口了),语法有时候就是一些包装,只是方便程序编写,为了性能,编译器当然会做一些优化(个人是这么理解的)
这篇关于C#中到底有没有接口继承接口这个概念?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文