1

我正在阅读 .NET 中的方差:http: //msdn.microsoft.com/en-us/library/dd799517.aspx

我遇到了这条线:Variance applies only to reference types; if you specify a value type for a variant type parameter, that type parameter is invariant for the resulting constructed type.

为什么是这样?我们能否不将值类型“装箱”为引用类型,或者这会导致进一步的问题吗?

我才刚刚开始掌握方差的概念,所以我对它的理解非常基本/不完整。

4

1 回答 1

2

如果你认为一个值类型

不能从另一个结构继承

http://msdn.microsoft.com/library/ah19swz4%28v=vs.90%29.aspx

为他们谈论差异是没有意义的。如果你把它装进一个引用类型中,除了对象之外,你认为使用什么类型?您应该定义对引用类型的隐式或显式强制转换,但有什么价值?

方差是关于多态性和继承的。考虑一下,当您将 int 分配给 long 类型的变量时,您有隐式转换:两种类型之间没有继承关系。

于 2013-10-04T13:11:43.853 回答