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

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

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

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

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

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

    这就是委托的》》逆变

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

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

    这就是委托的》》协变

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

  • 相关阅读:
    宝物筛选
    [HAOI2008]糖果传递
    线段树(区间查询,区间修改)——标记永久化版
    图的割边
    图的割点
    P2066 机器分配
    SP1700 TRSTAGE
    P4568 [JLOI2011]飞行路线
    POJ 2533 Longest Ordered Subsequence
    HDU 2512 一卡通大冒险
  • 原文地址:https://www.cnblogs.com/zwqsgff/p/3497227.html
Copyright © 2011-2022 走看看