热门IT资讯网

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

发表于:2024-11-25 作者:热门IT资讯网编辑
编辑最后更新 2024年11月25日,多路委托class Program{public delegate void SayThingToS(string s);void SayHello(string s){Console.WriteLi

多路委托

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

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

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

0