泛型使用开放和封闭泛型类型的概念:参数化泛型类定义(即List<T>
)是一种开放泛型类型,运行时为代码中的每个不同用途生成一个封闭的泛型类型,即为其创建不同的类型List<int>
对于List<MyStruct>
- 对于每个封闭的泛型类型,T
在运行时已知大小和类型.
来自MSDN的澄清:
将泛型类型或方法编译为Microsoft中间语言(MSIL)时,它包含将其标识为具有类型参数的元数据.如何使用泛型类型的MSIL根据提供的类型参数是值类型还是引用类型而不同.
当首次使用值类型作为参数构造泛型类型时,运行时会创建一个专用泛型类型,其中提供的参数或参数将替换为MSIL中的相应位置.为每个用作参数的唯一值类型创建一次专用泛型类型.
泛型对参考类型的工作方式有所不同.第一次使用任何引用类型构造泛型类型时,运行时会创建一个专用泛型类型,其中对象引用将替换MSIL中的参数.然后,每次构造类型以引用类型作为其参数进行实例化时,无论它是什么类型,运行时都会重用先前创建的泛型类型的专用版本.这是可能的,因为所有引用都是相同的大小.
归档时间: |
|
查看次数: |
235 次 |
最近记录: |