在 .NET 中使用方差可以对值类型进行框箱以避免它们是不变的

本文关键字:NET 方差可 类型 | 更新日期: 2023-09-27 18:33:50

我正在阅读.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.

这是为什么呢?我们是否可以不将值类型"框"到引用类型中,或者这是否会导致进一步的问题?

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

在 .NET 中使用方差可以对值类型进行框箱以避免它们是不变的

如果您认为这是一种值类型

不能从另一个结构继承

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

对他们来说,谈论差异是没有意义的。如果将其框入引用类型,除了对象之外,您认为使用哪种类型?您应该为引用类型定义隐式或显式强制转换,但有什么价值?

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