• 委托的几种表示方法


     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 
     6 namespace ConsoleApplication1
     7 {
     8 class Program
     9 {
    10 //delegate string works(int a,int b);
    11 static void Main(string[] args)
    12 {
    13 //第一种
    14 // List<string> list = new List<string>() { "1111", "2", "3", "4" };
    15 //list = list.FindAll(x => { bool flag = x.Length < 4; return flag; });
    16 //list.ForEach(Console.WriteLine);
    17 
    18 //第二种
    19 // works wk = new works(methord);
    20 //Console.WriteLine(wk(2, 3));
    21 
    22 //第三种
    23 //works wk = (x,y) => (x+y).ToString();
    24 // Console.WriteLine(wk(3, 4));
    25 
    26 //自带的委托定义
    27 
    28 //Func<T>带有返回值的泛型委托
    29 //泛型Func<T>委托与Action<T>委托类似,不同点是Func<T>允许调用带返回值类型的方法,
    30 //而且其返回值类型的指定是Func<T1,T2,T3...Tn>中的最后一个类型(Tn),即Tn就是其返回值,
    31 //其它类型都表示参数的类型。(最多可以有16种参数类型和一个返回值类型)
    32 Func<int,int,string> fc = methord;
    33 Console.WriteLine(fc(3, 5));
    34 
    35 //Action<T>无返回值的泛型委托
    36 //泛型Action<T>委托表示引用一个void返回类型的方法,这个委托类可以有多个(≥0)参数且参数的类型可以不同(最多可以有16种不同类型的参数)。
    37 Action<int,int> ac = methord1;
    38 ac(3, 6);
    39 
    40 //Predicate<T>委托(常用于集合参数)
    41 //Predicate<T>泛型委托,只能接受一个传入参数,返回值为bool类型。
    42 Predicate<int> pr = Method2;
    43 if (pr(3))
    44 {
    45 Console.WriteLine("偶数");
    46 }
    47 else
    48 
    49 {
    50 Console.WriteLine("奇数");
    51 }
    52 
    53 Console.Read();
    54 
    55 }
    56 public static string methord(int a,int b)
    57 { 
    58 return (a+b).ToString();
    59 }
    60 public static void methord1(int a, int b)
    61 {
    62 Console.WriteLine( (a + b).ToString());
    63 }
    64 public static bool Method2(int a)
    65 {
    66 
    67 if (a % 2 == 0)
    68 {
    69 
    70 return true;
    71 
    72 }
    73 return false;
    74 
    75 }
    76 }
    77 }
  • 相关阅读:
    cxgrid动态创建列
    cxgrid显示海量数据
    Delphi 两个应用程序(进程)之间的通信
    Delphi实现窗体内嵌其他应用程序窗体
    Change tab position of PageControl to bottom
    how can I make the login form transparent?
    UniDBGrid增加显示记录数的label及隐藏refresh按钮
    java工厂模式实例化class
    Java 语言细节
    applet示例 WelcomeApplet.java <Core Java>
  • 原文地址:https://www.cnblogs.com/taomylife/p/3542875.html
Copyright © 2020-2023  润新知