C#委托基础2——多路委托
发表于:2024-11-25 作者:热门IT资讯网编辑
编辑最后更新 2024年11月25日,多路委托class Program{public delegate void SayThingToS(string s);void SayHello(string s){Console.WriteLi
多路委托
- 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月份发表在我的新浪博客中,现在将其般至本博客。