我的问题涉及到如何编译Generics(在C#中)。
代码示例
public class MyClass<Foo>
{
public void MyMethod(Foo test)
{
}
}
问题
Foo
中的MyMethod
类型是否会被编译为具体类型?我想象不会因为这需要创建同一个类的多个版本(应该用不同的类型实例化),所以我想一个泛型类型是否得到了适当的支持而不仅仅是语法糖?我认为我的假设不正确,但我试图了解幕后的内部运作。
更新
如果我正确理解了这篇文章,那么在运行时期间会使用具体类型创建IL中的新类。
因此,运行时生成泛型类型的另一个版本,并在MSIL中的适当位置替换long。转换不再是必需的,因为每个专用泛型类本身都包含值类型。