title: C#泛型(MSIL)的内部是怎么实现的?
desc: C中的模板是有编译器进行实例化变成最终可以被直接调用的函数。C的泛型是MSIL直接支持的，MSIL在实现泛型的时候，就是最终执行的时候也是通过把泛型实例化来运行的吗？谢谢
topic: .NET
content: MSIL自身只需声明和使用泛型类型，而无需关心其实例化.NET是在运行时由CLR来实例化泛型类型的。跟前面的回答类似，这里用Dictionary<TKey， TVal>举例。带有未绑定值的泛型参数的泛型类型称为“开放泛型类型”（open generic type）。这可以看作是原始状态未填值的“模版”。所有泛型参数都绑定了具体类型的值的泛型类型称为“闭合泛型类型”（closed generic type 或 closed constructed generic type）。C .NET还有
answerer_tags: 软件工程师、主攻高级编程语言虚拟机的设计与实现