前言
在 C# 中,协变(Covariance)和逆变(Contravariance)是两个重要的概念,主要用于处理泛型类型参数的可变性。这两个概念允许在泛型类型之间进行更灵活的转换,提高了代码的可重用性和灵活性。

一、协变
(一)定义与概念
协变允许将一个派生类型的泛型参数转换为基类型的泛型参数。简单来说,如果有两个泛型接口IFoo和IBar,并且IFoo的泛型参数T是协变的,那么如果A是B的派生类,就可以将IFoo转换为IFoo。
(二)使用场景与示例
示例一:泛型接口中的协变
interface IFoo<out T>