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

C#编译器如何与泛型一起使用?,第1张

概述在C中,模板声明需要在头文件中(除非您明确声明模板类型),我明白了解原因. 我没有得到的是如果C#编译器没有要检查的.cs文件,它如何处理泛型.我怀疑它会检查CIL,因为这将是一个处理器密集型 *** 作.我知道它能够从元数据中提取类型信息,但是如果通用函数的代码也被编码,那么对于可执行文件来说这将是一个巨大的膨胀. 那么,再次,编译器如何使用泛型? 我想你问的是C#编译器如何使用引用程序集中定义的泛型类 在C中,模板声明需要在头文件中(除非您明确声明模板类型),我明白了解原因.

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

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

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

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

总结

以上是内存溢出为你收集整理的C#编译器如何与泛型一起使用?全部内容,希望文章能够帮你解决C#编译器如何与泛型一起使用?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1222389.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-05
下一篇2022-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存