初學筆記(C#事件)

來源:互聯網
上載者:User

標籤:style   color   使用   ar   strong   資料   sp   on   c   

1.聲明事件

     EventHandler是一個預定義的委託,它定義了一個無傳回值的方法。在 .Net Fromwork中,他的格式:

                  public  delegate  void EventHandler (Object  sender, EvenArgs  e)

其中sender的類型為Object,表示時間發行者本身,e用來傳遞事件的相關資訊,資料類型為EvenArgs及其衍生類別。

     標準的EvenArgs並不包含任何事件數目據, 因此EventHandler專用於表示不產生資料的事件的事件方法。如果要事件產生資料,則必須提供自訂的事件類型,該類型從EventArgs派生,提供儲存時間資料所需要的全部欄位或屬性,這樣時間發行者可以將特定的資料發送給接收者。

     用標準的EventHandler委託可以聲明不包含資料的標準事件:

                public   event  EvenHandler  事件名;

     要產生包含資料的事件,必須先自訂事件數目據類型,有兩種:

(1)先定義委託,再定義事件。

       public class 事件數目據類型 : EventArgs   {//封裝資訊;}

      public delegate  傳回值類型  委託類型名 (Object sender, 事件數目據類型 e);

     public event 委託類型 事件名;

 (2)使用泛型EventHandler定義事件。

     public class 時間資料類型 : EventArgs    {//封裝資訊;}

     public event EventHandler<時間資料類型>事件名

2.訂閱事件

      聲明事件的實質是定義一個資料變數,並不意味著就能成功觸發事件,還要:(1)在事件的接收者中定義一個方法來回應時間,(2)通過建立委派物件把事件與事件方法聯絡起來(又稱綁定事件或訂閱事件)。負責綁定事件與事件方法的類就稱為時間的訂閱者。

        事件名 += new  事件委託名(事件方法);

注意:

    (1)訂閱事件的操作由事件的接收者實現。

   (2)每個事件都可以有多個處理常式,多個程式按順序調用。如果一個處理常式發生異常,還未處理的程式則沒有機會接受事件。為此,建議事件處理常式迅速處理事件,並避免發生異常。

   (3)訂閱事件必須見一個與事件具有相同類型的委派物件,把事件方法當作委託目標,使用“+=”運算子把事件方法添加到來源物件的事件中。

   (4)若要取消訂閱事件,可使用“-=”。

3.觸發事件

    在C#中,觸發事件與委託點用相同,但要注意使用匹配的事件參數。事件一旦觸發,相應的事件方法就會被調用,如果該事件沒有任何處理常式,則該事件為空白。

4.總結:

     第一步:定義相關資訊類;

     第二步:定義事件警報器;

    第三步:聲明事件產生時調用的方法;

    第四步:訂閱事件;

    第五步:觸發事件;

5.採用基於事件驅動模型進行程式設計,其實過程包括五部分:

     (1)定義事件相關資訊類;

    (2)在事件發行者類(事件來源)中聲明事件,並聲明一個負責觸發事件的方法;

    (3)在事件接受者類中聲明事件產生時調用的方法;

    (4)在事件接受者類中訂閱事件;

    (5)在事件接收者類中觸發事件。

 

         初學筆記還望大家多多指點!!!

初學筆記(C#事件)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.