C#笔记~泛型( 二 )


文章插图
 
使用泛型之后,我们发现基类和子类的泛型并没有继承关系,但实际业务中,他们还是父子关系 。
为解决上述问题,引入了协变、逆变 。
1.协变,让赋值表达式右边可以用子类
协变只能修饰返回参数 。为什么不能修饰传入参数呢?因为父类赋值给子类 。

C#笔记~泛型

文章插图
 

C#笔记~泛型

文章插图
 
2.逆变,让赋值表达式右边可以用父类
逆变只能修饰传入参数 。
C#笔记~泛型

文章插图
 

C#笔记~泛型

文章插图
 
3.协变逆变只能用于接口、委托 。




推荐阅读