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

查看:70
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆