问题标签 [cil-metadata]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C# 编译器如何使用泛型?
在 C++ 中,template
声明需要在头文件中(除非您明确声明模板类型),我明白为什么。
我不明白的是,如果 C# 编译器没有.cs
要检查的文件,它如何处理泛型。我怀疑它会检查 CIL,因为这将是一个处理器密集型操作。我知道它能够从元数据中提取类型信息,但是如果泛型函数的代码也被编码,那么对于可执行文件来说将是一个巨大的膨胀。
那么,编译器又是如何使用泛型的呢?
c# - 为什么不能在泛型中要求运算符重载
在 C++ 中,您可以编写如下代码:
但是,你不能在 C# 中做这样的事情:
有什么理由吗?我知道它可以通过反射来完成(Add
对对象进行泛型,然后对它进行类型检查),但这效率低且不能很好地扩展。那么,再次,为什么?