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

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

  代码:

 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 }

 

转载于:https://www.cnblogs.com/yunquan/p/4927385.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值