为了账号安全,请及时绑定邮箱和手机立即绑定

请教一个C#中协变与逆变的问题

请教一个C#中协变与逆变的问题

C#
九州编程 2018-11-02 11:17:42
微软提供了这样一个委托:public delegate TResult Func<in T1, in T2, out TResult>(T1 arg1, T2 arg2);这个委托有15+重载,在该委托中各参数前都有in,out等字样,我自己照着写了一个,把in,out等完全去掉,也能正常运行,上网了解了下,这是面向对象编程中的协变和逆变。。大概了解了下意思:协变是指需要父类做参数的时候,传子类进去也可以,这个很好理解,方便了我们编码,而逆变是说需要子类的时候,传个父类进去也可以,这就有点不理解了,在什么场合可以这样使用?也可能是我解理的不对。想请高手们举个例子讲解一下,协变和逆变的使用场景。
查看完整描述

2 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

推荐阅读 深入理解 C# 协变和逆变

查看完整回答
反对 回复 2018-11-05
?
缥缈止盈

TA贡献2041条经验 获得超4个赞

因为不知道谁会调用,所以限定一下类型,确保结果能正常使用

查看完整回答
反对 回复 2018-11-05
  • 2 回答
  • 0 关注
  • 701 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信