zoukankan      html  css  js  c++  java
  • c# 协变和逆变的理解

    一下内容全部为自己的理解,不一定正确。

    委托的协变和逆变理解起来真是有点绕,总的来说从委托的声明到执行就是一个投入和产出的过程。

    委托声明就不说了,想想执行吧。

    委托执行的时候 ,  传入的参数列表的值为投入的东西,而返回值就是 产出的东西,结合 基类和派生的关系,派生类可自动转换为基类,

    这样的话,在参数列表传递(参数列表的类型就是委托指定的,)给方法的时候可以转化为这些参数的基类(方法中定义基类参数可实现自动转化),所以委托的参数类型可定义为派生类。

    这就是委托的》》逆变

    在方法 返回值的时候,同样,最终返回的是基类,也就是在返回值的过程中可实现一个 派生类到基类的自动转换过程,定义方法的时候返回值

    为派生类,而委托定义为基类,所以有一个派生类到基类的自动转化。

    这就是委托的》》协变

    在学习的过程中发现 匿名函数 居然不支持 逆变 ,有点匪夷所思

  • 相关阅读:
    类和迭代器
    使用委托调用函数
    自定义类和集合
    带函数的参数返回函数的最大值
    使用程序调试输出窗口
    自定义类
    类和结构
    全局参数
    带参数的函数返回数组之和
    IS运算符
  • 原文地址:https://www.cnblogs.com/zwqsgff/p/3497227.html
Copyright © 2011-2022 走看看