问题标签 [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.

0 投票
3 回答
4510 浏览

c# - C# 编译器如何使用泛型?

在 C++ 中,template声明需要在头文件中(除非您明确声明模板类型),我明白为什么。

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

那么,编译器又是如何使用泛型的呢?

0 投票
3 回答
540 浏览

c# - 为什么不能在泛型中要求运算符重载

在 C++ 中,您可以编写如下代码:

但是,你不能在 C# 中做这样的事情:

有什么理由吗?我知道它可以通过反射来完成(Add对对象进行泛型,然后对它进行类型检查),但这效率低且不能很好地扩展。那么,再次,为什么?