Event delegate

”貓叫老鼠跑“來記憶委託和事件
 
主要事件執行類:
class //函數入口
{
      static void main(string[] args)
       {
              cat cat = new cat();
              mouse mouse = new mouse();
              cat.Emethod + =new cat.deletagehandler(mouse.run()); //註冊事件 【觸發委託訂閱的方法】
               cat.cry();
              console.ReadKey();
       }
}
 
 class cat //貓類
 {
      public  delegate void delegatehandler(); //定義委託
      public event delegatehandler Emethod; //定義事件
      public event
       public delegate void  cry()
       {
            Console.WriteLine("miao!");
            raiseEvent();
       }
      public void raiseEvent()
      {
             //如果註冊過事件則觸發事件
              if(Emethod!=null)
              {
                     Emethod();
              }
      }
     
 }
 
class mouse //鼠類
 {
    public void run() //委託的方法
   {
         Console.WriteLine("貓來了,快跑!");
   }
 }
 
 
=======
打印當然是結果:
miao!
貓來了,快跑!
 
有2點我們是需要理解的:
1.委託是用來訂閱方法的
2.事件是需要註冊的
 
還有1點我們需要明白的是:事件引入的目的就是一個類函數中爲了觸發另一個類中的函數。
 
歸納起來事件使用步驟如下:
1.定義委託
2.定義事件
3.編寫事件處理函數
4.註冊事件
5.觸發事件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章