码迷,mamicode.com
首页 > 其他好文 > 详细

多播委托和匿名方法再加上Lambda表达式

时间:2015-11-01 12:32:16      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:

  多播委托就是好几个方法全都委托给一个委托变量

  代码:

 1 namespace 委托
 2 {
 3     class Program
 4     {
 5         static void math1()
 6         {
 7             Console.WriteLine("这是第一个方法");
 8         }
 9 
10         static void math2()
11         {
12             Console.WriteLine("这是第二个方法");
13         }
14 
15         static void Main(string[] args)
16         {
17         
18             //多播委托
19             Action vae = math1;
20             vae += math2;
21             Delegate [] deleg = vae.GetInvocationList();  //把vae这个委托里面的方法全部给一个委托数组
22             foreach (Delegate item in deleg)
23             {
24                 item.DynamicInvoke();     //通过遍历语句,把这些方法再一个个的实现
25             }
26 
27             Console.ReadKey();
28         }
29     }
30 
31 }

  匿名方法本质上还是一个方法,只是它没有名字,任何使用委托变量的地方都可以使用匿名方法赋值

  代码:

  

 1 namespace 委托
 2 {
 3     class Program
 4     { 
 5             //匿名方法
 6    
 7             Func<int, int> vae = delegate(int i)   //这是Func
 8             {
 9                 return i;
10             };
11             Console.WriteLine(vae(5));
12 
13 
14             Action a = delegate()                 //这是Action
15             {
16                 Console.WriteLine("哈哈哈哈哈哈");
17             };
18             a();
19   
20 
21             Console.ReadKey();
22         }
23     }
24 
25 }

 

  Lambda表达式,作用就是为了简化匿名方法

  代码: 

 1 namespace Lambda表达式
 2 {
 3     class Program
 4     {
 5         static void Main(string[] args)
 6         {
 7             Func<int, int, int> dele = (lg1, lg2) =>  //=>这个符号是规范是必须写的,lambda表达式就是为了简化委托的匿名方法
 8             {
 9                 return lg1 + lg2;
10             };
11 
12             Console.WriteLine(dele(8,5));
13 
14             Func<int, int> dele = a => a+1;
15             Console.WriteLine(dele(5));
16             Console.ReadKey();
17         }
18     }
19 }

 

多播委托和匿名方法再加上Lambda表达式

标签:

原文地址:http://www.cnblogs.com/yunquan/p/4927385.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!