一个简单的委托和事件的例子

湖北天马养蜂场2010-08-13 13:48:41Asp.net程序开发2271

  classProgram
   {
       staticvoidMain(string[]args)
       {
           Catcat=newCat();
           cat.catEvent+=newMouse().Run;
           cat.catEvent+=newFish().You;

           cat.CatIsComming();
       }
   }

   publicdelegatevoidCatEventHandler(objectsender,ConsoleApplication1.Cat.CatEventArgse);

   publicclassCat
   {
       privatestringname="";
       publiceventCatEventHandlercatEvent;

       publicclassCatEventArgs:EventArgs
       {
           publicreadonlystringcatName="";
           publicCatEventArgs(stringmyname)
           {
               this.catName=myname;
           }
       }

       publicvoidCatIsComming()
       {
           Console.WriteLine("CatisComming...");
           if(catEvent!=null)
           {  
               CatEventArgse=newCatEventArgs("TOM");
               catEvent(this,e);
           }
       }
   }湖北天马养蜂场,加我们的微信一起学养蜂。

   publicclassMouse
   {
       publicvoidRun(objectsender,ConsoleApplication1.Cat.CatEventArgse){Console.WriteLine("MouseRun."+e.catName);}
   }

   publicclassFish
   {
       publicvoidYou(objectsender,ConsoleApplication1.Cat.CatEventArgse){Console.WriteLine("FishYou."+e.catName);}
   }