一下内容全部为自己的理解,不一定正确。
委托的协变和逆变理解起来真是有点绕,总的来说从委托的声明到执行就是一个投入和产出的过程。
委托声明就不说了,想想执行吧。
委托执行的时候 , 传入的参数列表的值为投入的东西,而返回值就是 产出的东西,结合 基类和派生的关系,派生类可自动转换为基类,
这样的话,在参数列表传递(参数列表的类型就是委托指定的,)给方法的时候可以转化为这些参数的基类(方法中定义基类参数可实现自动转化),所以委托的参数类型可定义为派生类。
这就是委托的》》逆变
在方法 返回值的时候,同样,最终返回的是基类,也就是在返回值的过程中可实现一个 派生类到基类的自动转换过程,定义方法的时候返回值
为派生类,而委托定义为基类,所以有一个派生类到基类的自动转化。
这就是委托的》》协变
在学习的过程中发现 匿名函数 居然不支持 逆变 ,有点匪夷所思