C#委托基础2——多路委托-阿里云开发者社区

开发者社区> 开发与运维> 正文

C#委托基础2——多路委托

简介:

多路委托


  1. class Program  
  2.     {  
  3.         public delegate void SayThingToS(string s);  
  4.  
  5.         void SayHello(string s)  
  6.         {  
  7.             Console.WriteLine("你好{0}", s);  
  8.         }  
  9.  
  10.         void SayGoodBye(string s)  
  11.         {  
  12.             Console.WriteLine("再见{0}", s);  
  13.         }  
  14.  
  15.         static void Main(string[] args)  
  16.         {  
  17.             // 方式一  
  18.             SayThingToS say1, say2, say3, say4;  
  19.             Program p = new Program();  
  20.             say1 = p.SayHello;  
  21.             say1("xy"); // 你好xy  
  22.  
  23.             say2 = p.SayGoodBye;  
  24.             say2("xy"); // 再见xy  
  25.  
  26.             say3 = say1 + say2;  
  27.             say3("xy"); // 你好xy,再见xy  
  28.  
  29.             say4 = say3 - say1;  
  30.             say4("xy"); // 再见xy  
  31.  
  32.  
  33.             // 方式二  
  34.             SayThingToS s1 = new SayThingToS(p.SayHello);  
  35.             s1 += new SayThingToS(p.SayGoodBye);  
  36.             s1("xy"); // 你好xy,再见xy  
  37.  
  38.             SayThingToS s2 = new SayThingToS(p.SayHello);  
  39.             s2 += new SayThingToS(p.SayGoodBye);             
  40.             s2 -= new SayThingToS(p.SayHello);  
  41.             s2("xy"); // 再见xy  
  42.         }  
  43.     } 

 

本文参考自金旭亮老师的《.NET 4.0面向对象编程漫谈》有关代理的内容

C#委托基础系列原于2011年2月份发表在我的新浪博客中,现在将其般至本博客。

本文转自IT徐胖子的专栏博客51CTO博客,原文链接http://blog.51cto.com/woshixy/1070981如需转载请自行联系原作者


woshixuye111

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章