C#泛型中的抗变和协变

在.net4之前,泛型接口是不变的。.net4通过协变和抗变为泛型接口和泛型委托添加了一个重要的扩展。

1、协变:如果泛型类型用out关键字标注,泛型接口就是协变的。这也意味着返回类型只能是T。

 实例:

View Code

2、抗变:如果泛型类型用in关键字,泛型接口就是抗变得。这样,接口的只能把泛型类型T用作方法的输入。

 实例:

View Code
原文地址:https://www.cnblogs.com/linybo/p/13340047.html