一、概述
1、在 C# 中,协变和逆变能够实现数组类型、委托类型和泛型类型参数的隐式引用转换。
2、按字面,可以这样理解:协变,感觉协和地隐式引用转换;逆变,逆反直觉地隐式引用转换。
1、定义
(1)协变,使你能够使用比原始指定的类型派生程度更大的类型。你可以将 IEnumerable<Derived> 的实例分配给 IEnumerable<Base> 类型的变量。
(2)逆变,使你能够使用比原始指定的类型更泛型的类型(派生程度更小的类型)。你可以将 Action<Base> 的实例分配给 Action<Derived> 类型的变量。
(3)不变性,表示只能使用最初指定的类型。 固定泛型类型参数既不是协变,也不是逆变。你无法将 List<Base> 的实例分配给 List<Derived> 类型的变量,反之亦然。
标签:C#,协变,逆变,实例,类型,泛型 From: https://www.cnblogs.com/jmllc/p/17888301.html