为什么.NET 4中的差异仅支持引用类型?

jd3*_*jd3 2 .net-4.0

.NET 4支持协方差和逆变.但是,仅支持引用类型,而不支持值类型.这是为什么?

Jon*_*eet 7

基本上,CLR需要知道它可以将"源"类型的值视为"目标"类型的值而不执行任何额外的转换 - 简单地说,源值的位模式必须是有效的目标值.该陈述必须是相同的.否则,CLR需要有额外的信息才能在正确的时间执行正确的转换.

Eric Lippert在博客中写了关于表示和身份的信息 - 请参阅该帖子以获取更多信息(一如既往:).