C#协变和逆变

协变和逆变能够实现数组类型、委托类型和泛型类型参数的隐式引用转换。

协变将派生高的类型隐式转换为派生低的类型,如string转为object,

逆变相反。

可以使用 out 关键字将泛型类型参数声明为协变。 协变类型必须满足以下条件:

  • 类型仅用作接口方法的返回类型,不用作方法参数的类型。
  • 类型不用作接口方法的泛型约束。

可以使用 in 关键字将泛型类型参数声明为逆变。

官方文档地址:https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/concepts/covariance-contravariance/creating-variant-generic-interfaces

博客备忘,一起成长。
原文地址:https://www.cnblogs.com/lumingprince/p/13898190.html