多路委托
- class Program
- {
- public delegate void SayThingToS(string s);
- void SayHello(string s)
- {
- Console.WriteLine("你好{0}", s);
- }
- void SayGoodBye(string s)
- {
- Console.WriteLine("再见{0}", s);
- }
- static void Main(string[] args)
- {
- // 方式一
- SayThingToS say1, say2, say3, say4;
- Program p = new Program();
- say1 = p.SayHello;
- say1("xy"); // 你好xy
- say2 = p.SayGoodBye;
- say2("xy"); // 再见xy
- say3 = say1 + say2;
- say3("xy"); // 你好xy,再见xy
- say4 = say3 - say1;
- say4("xy"); // 再见xy
- // 方式二
- SayThingToS s1 = new SayThingToS(p.SayHello);
- s1 += new SayThingToS(p.SayGoodBye);
- s1("xy"); // 你好xy,再见xy
- SayThingToS s2 = new SayThingToS(p.SayHello);
- s2 += new SayThingToS(p.SayGoodBye);
- s2 -= new SayThingToS(p.SayHello);
- s2("xy"); // 再见xy
- }
- }
本文参考自金旭亮老师的《.NET 4.0面向对象编程漫谈》有关代理的内容
C#委托基础系列原于2011年2月份发表在我的新浪博客中,现在将其般至本博客。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。