C#编译器如何与泛型一起使用?
发布时间:2020-12-16 00:06:38 所属栏目:百科 来源:网络整理
导读:在C中,模板声明需要在头文件中(除非您明确声明模板类型),我明白了解原因. 我没有得到的是如果C#编译器没有要检查的.cs文件,它如何处理泛型.我怀疑它会检查CIL,因为这将是一个处理器密集型操作.我知道它能够从元数据中提取类型信息,但是如果通用函数的代码也
在C中,模板声明需要在头文件中(除非您明确声明模板类型),我明白了解原因.
我没有得到的是如果C#编译器没有要检查的.cs文件,它如何处理泛型.我怀疑它会检查CIL,因为这将是一个处理器密集型操作.我知道它能够从元数据中提取类型信息,但是如果通用函数的代码也被编码,那么对于可执行文件来说这将是一个巨大的膨胀. 那么,再次,编译器如何使用泛型? 解决方法
我想你问的是C#编译器如何使用引用程序集中定义的泛型类型,而不是询问C#编译器如何编译定义泛型类型的.cs文件(因为你说“如果它没有.cs文件“).
通用类型和成员在IL中编码为通用.封闭的泛型类型和成员由jit编译器在运行时构造.所以对你的问题的简单回答是“C#编译器通过发出IL来处理泛型类型,导致jit编译器在运行时构造它们.” (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c – 为什么memcpy对堆栈内存的速度比堆内存快得多?
- ruby-on-rails – Ruby on Rails ActiveRecord:pluralizat
- 【第25篇】通过org.json结合HttpClient解析的百度API附近的
- iOS NSFileManeger 计算文件是否超时,和计算文件夹下文件的
- ORACLE 11g 高可用Data Guard在线降级详细过程
- PostgreSQL Server进程检查启动脚本
- XMLHttpRequest对象的创建
- iphone – Xcode:视图控制器和App Delegate之间的连接
- nosql redis-2.8.10 源码安装
- FLEX动态获取当前组件属性