zoukankan      html  css  js  c++  java
  • 泛型委托

    <1>Predicate泛型委托

    // 摘要:
              //     表示定义一组条件并确定指定对象是否符合这些条件的方法。
              //
              // 参数:
              //   obj:
              //     要按照由此委托表示的方法中定义的条件进行比较的对象。
              //
              // 类型参数:
              //   T:
              //     要比较的对象的类型。
              //
              // 返回结果:
              //     如果 obj 符合由此委托表示的方法中定义的条件,则为 true;否则为 false。
              public delegate bool Predicate<in T>(T obj);
    

      需要传入一个T类型的参数,并且需要返回一个bool类型的返回值

    <2>Action泛型委托

        // 摘要: 
        //     封装一个方法,该方法只有一个参数并且不返回值。
        //
        // 参数: 
        //   obj:
        //     此委托封装的方法的参数。
        //
        // 类型参数: 
        //   T:
        //     此委托封装的方法的参数类型。
        public delegate void Action<in T>(T obj);
    

        可以有0个到16个输入参数,输入参数的类型是不确定的,但不能有返回值

    <3>Func泛型委托

        // 摘要: 
        //     封装一个不具有参数但却返回 TResult 参数指定的类型值的方法。
        //
        // 类型参数: 
        //   TResult:
        //     此委托封装的方法的返回值类型。
        //
        // 返回结果: 
        //     此委托封装的方法的返回值。
        [TypeForwardedFrom("System.Core, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=b77a5c561934e089")]
        public delegate TResult Func<out TResult>();
    

        0到16个输入参数,参数类型由使用者确定,它规定要有一个返回值,返回值的类型也由使用者确定

        参数列表中的最后一个泛型类型是方法的返回值类型

  • 相关阅读:
    Archlinux笔记本安装手记
    linux下activemq安装与配置activemq-5.15.2
    在 CentOS7 上安装 Zookeeper-3.4.9 服务
    VMware虚拟化kvm安装部署总结
    打印机故障总结
    fluentd安装和配置,收集docker日志
    使用Python和AWK两种方式实现文本处理的长拼接案例
    MySQL数据库使用xtrabackup备份实现小例子
    shell脚本实现ftp上传下载文件
    Linux系统中创建大文件,并作为文件系统使用
  • 原文地址:https://www.cnblogs.com/zhengwk/p/5286156.html
Copyright © 2011-2022 走看看