首页 > 其他 > 详细

委托的几种表示方法

时间:2014-02-10 16:48:07      阅读:340      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
 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 }
bubuko.com,布布扣

委托的几种表示方法

原文:http://www.cnblogs.com/taomylife/p/3542875.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!