位置:首頁 > 軟件操作教程 > 編程開發(fā) > C# > 問題詳情

在C#中創(chuàng)建和使用事件的步驟

提問人:劉冬梅發(fā)布時間:2020-10-13

1. 為事件創(chuàng)建一個委托類型

     所有事件是通過委托來激活的,其返回值類型一般為void型。為事件創(chuàng)建一個委托類型的語法格式如下:

delegate void 委托類型名([觸發(fā)事件的對象名,事件參數(shù)]);

     例如,以下語句創(chuàng)建一個委托類型mydelegate,其委托的事件處理方法返回類型為void,不帶任何參數(shù):

     public delegate void mydelegate();

2. 創(chuàng)建事件處理的方法

      當(dāng)事件觸發(fā)時要調(diào)用事件處理方法,需設(shè)計相應(yīng)的事件處理方法,可以將它放在單獨(dú)的類中,也可以放在觸發(fā)事件的類中。

     例如,以下設(shè)計一個包含事件處理方法的單獨(dú)類   

    class MyEventHander

    {   public void OnHandler1()

         {

              Console.WriteLine("調(diào)用OnHandler1方法");

         }

}

3. 聲明事件

      事件是類成員,以關(guān)鍵字event聲明,其一般語法格式如下:

      [修飾符]  event 委托類型名 事件名;

     其中,“修飾符”指出類的用戶訪問事件的方式,可以為public 、private、protected、internal、protectedinternal、static或virtual等。

      一般在聲明事件的類中包含觸發(fā)事件的方法。例如,以下MyEvent類包含事件聲明和觸發(fā)該事件的方法:

      MyEvent                  //事件類

      { public event mydelegate1 Event1; //聲明事件

public void FireEvent1()    //調(diào)用這個方法來觸發(fā)事件Event1

              {     if(Event1 != null)

              {

          Event1();            //Event1事件發(fā)生

                }

}

      }

4. 通過委托對象來調(diào)用被包含的方法

      向類事件(列表)中添加事件處理方法中的一個委托,這個過程稱為訂閱事件,這個過程通常是在主程序中進(jìn)行的,首先必須聲明一個包含事件的類的對象,然后將事件處理方法和該對象關(guān)聯(lián)起來,其格式如下:

      事件類對象名.事件名+=new 委托類型名(事件處理方法);

     其中,還可以使用“-=”、“+”、“-”等運(yùn)算符添加或刪除事件處理方法。最后調(diào)用觸發(fā)事件的方法便可觸發(fā)事件。

    例如,以下語句就是觸發(fā)前面創(chuàng)建的事件Event1,并在屏幕上顯示“調(diào)用OnHandler1方法”:

     MyEvent b = new MyEvent();

     MyEventHander a = new MyEventHander();

     b.Event1 += new mydelegate1(a.OnHandler1);

          //把方法OnHandler1添加到事件列表中

     b.FireEvent1();     //調(diào)用觸發(fā)事件的方法

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部