在C#中,泛型是一种非常强大的特性,它允许我们编写可以在多种类型上工作的可重用代码。泛型协变(covariance)和逆变(contravariance)是C# 4.0引入的概念,它们使得泛型类型更加灵活,并能够更好地支持类型转换。
- 泛型协变(Covariance)
泛型协变允许我们将一个派生类对象赋值给一个基类类型的泛型对象。换句话说,它使得我们可以在泛型类型参数上使用更具体的派生类型。这在某些情况下非常有用,比如在集合中存储不同类型的对象,但是这些对象都是派生自同一个基类。
下面是一个示例代码,说明了泛型协变的使用:
class Animal {
}
class Mammal :