zoukankan      html  css  js  c++  java
  • 如何声明和使用 Func<T1, T2, TResult> 委托

     in T1

    此委托封装的方法的第一个参数类型。

    该类型参数是逆变的。即可以使用指定的类型或派生程度更低的类型。有关协变和逆变的更多信息,请参见泛型中的协变和逆变

    in T2

    此委托封装的方法的第二个参数类型。

    in T3

    此委托封装的方法的第三个参数类型。

    out TResult

    此委托封装的方法的返回值类型。

    该类型参数是协变的。即可以使用指定的类型或派生程度更高的类型。有关协变和逆变的更多信息,请参见泛型中的协变和逆变

    参数

    arg1
    类型:T1
    此委托封装的方法的第一个参数。
    arg2
    类型:T2
    此委托封装的方法的第二个参数。
    arg3
    类型:T3
    此委托封装的方法的第三个参数。

    返回值

    类型:TResult
    此委托封装的方法的返回值。
    备注

    可以使用此委托表示一种能以参数形式传递的方法,而不用显式声明自定义委托。 封装的方法必须与此委托定义的方法签名相对应。 也就是说,封装的方法必须具有三个均通过值传递给它的参数,并且必须返回值

     

    此示例声明一个 Func<T1, T2, TResult> 变量,并将其分配给一个采用 String 值和 Int32 值作为参数的 lambda 表达式。 如果 String 参数的长度等于 Int32 参数的值,则此 lambda 表达式将返回 true 随后在查询中使用封装此方法的委托来筛选字符串数组中的字符串。

     

    using System;
    using System.Collections.Generic;
    using System.Linq;
    
    public class Func3Example
    {
       public static void Main()
       {
          Func<String, int, bool> predicate = (str, index) => str.Length == index;
    
          String[] words = { "orange", "apple", "Article", "elephant", "star", "and" };
          IEnumerable<String> aWords = words.Where(predicate).Select(str => str);
    
          foreach (String word in aWords)
             Console.WriteLine(word);
       }
    }
    
    
    

  • 相关阅读:
    linux下解压命令详解
    SSL简介及工作原理
    在CentOS中安装gcc配置c语言开发环境(转)
    JTable表格(隐藏表头)(转)
    一个云平台开源项目Eucalyptus
    「CF645E」 Intellectual Inquiry
    「CERC2017」Donut Drone
    洛谷P3943 星空
    「CSPS 2019」格雷码
    洛谷P3941 入阵曲
  • 原文地址:https://www.cnblogs.com/dudu837/p/1875568.html
Copyright © 2011-2022 走看看