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月に私の新浪ブログに発表されたが、現在はこのブログに掲載されている.