加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#编译器如何与泛型一起使用?

发布时间:2020-12-16 00:06:38 所属栏目:百科 来源:网络整理
导读:在C中,模板声明需要在头文件中(除非您明确声明模板类型),我明白了解原因. 我没有得到的是如果C#编译器没有要检查的.cs文件,它如何处理泛型.我怀疑它会检查CIL,因为这将是一个处理器密集型操作.我知道它能够从元数据中提取类型信息,但是如果通用函数的代码也
在C中,模板声明需要在头文件中(除非您明确声明模板类型),我明白了解原因.

我没有得到的是如果C#编译器没有要检查的.cs文件,它如何处理泛型.我怀疑它会检查CIL,因为这将是一个处理器密集型操作.我知道它能够从元数据中提取类型信息,但是如果通用函数的代码也被编码,那么对于可执行文件来说这将是一个巨大的膨胀.

那么,再次,编译器如何使用泛型?

解决方法

我想你问的是C#编译器如何使用引用程序集中定义的泛型类型,而不是询问C#编译器如何编译定义泛型类型的.cs文件(因为你说“如果它没有.cs文件“).

通用类型和成员在IL中编码为通用.封闭的泛型类型和成员由jit编译器在运行时构造.所以对你的问题的简单回答是“C#编译器通过发出IL来处理泛型类型,导致jit编译器在运行时构造它们.”

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读