微软提供了这样一个委托:public delegate TResult Func<in T1, in T2, out TResult>(T1 arg1, T2 arg2);这个委托有15+重载,在该委托中各参数前都有in,out等字样,我自己照着写了一个,把in,out等完全去掉,也能正常运行,上网了解了下,这是面向对象编程中的协变和逆变。。大概了解了下意思:协变是指需要父类做参数的时候,传子类进去也可以,这个很好理解,方便了我们编码,而逆变是说需要子类的时候,传个父类进去也可以,这就有点不理解了,在什么场合可以这样使用?也可能是我解理的不对。想请高手们举个例子讲解一下,协变和逆变的使用场景。
- 2 回答
- 0 关注
- 727 浏览
添加回答
举报
0/150
提交
取消