zoukankan      html  css  js  c++  java
  • 进入快速通道的委托(深入理解c#)

    1.方法组:所有的名称相同的重载方法合在一起就成为一个方法组。

    2.协变性和逆变性:

    协变性指的是——泛型类型参数可以从一个派生类隐式转化为基类。

    逆变性指的是——泛型类型参数可以从一个基类隐式转化为派生类 。

    注意事项:

    1. 只有接口和委托支持协变和逆变(如 Fun<out TResult>,Action<in T>),类型或泛型方法的类型参数都不支持协变和逆变。

    2.协变和逆变只适用于引用类型,值类型不支持协变和逆变(因为可变性存在一个引用转换,而值类型变量存储的就是变量本身,而不是对象的引用),所以List<int> 无法转化为Ienumerable<object>。

    3.必须显示用in或out来标记类型参数。

    4.委托的可变性不要在多播委托中使用。

    假设一个派生类重载了某个基类中声明的方法,我们打算使用方法组转换创建一个委托的实例。由于c#2中的协变性和逆变性,一个以前只和基类方法匹配的转换,现在也和派生类方法相匹配。在这种情况下,编译器将选择派生类方法。

  • 相关阅读:
    Cassandra 分布式集群
    BI Project Managerment
    再学TSQL基础--单表查询
    pig 介绍与pig版 hello world
    xml in hadoop ETL with pig summary
    Mongodb--gridfs与分片实验
    定位frame 中的对象
    层级定位
    定位一组对象-checkbox 、radiobutton
    设置等待时间
  • 原文地址:https://www.cnblogs.com/mcyushao/p/9697307.html
Copyright © 2011-2022 走看看