程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 初學筆記(C#事件),

初學筆記(C#事件),

編輯:C#入門知識

初學筆記(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語言的學習筆記或整理好的一些資料?

《c語言編程百例》,按照例子來學習比較容易上手,比直接看那些原理性的書籍強 //
是寫程序的機試還是理論的筆試?
機試推薦《程序設計引導及在線實踐》,大綱級書籍,具體鏈接:ai.pku.edu.cn/book/
理論的筆試肯定還是以譚浩強的為主,不過確實有些亂,你不妨買本它配套的習題之類的看看,譚浩強此書配套習題相當多,基本上都大同小異,根據手頭已有的資料為主來選吧,具體不推薦了。
 

C語言初學者,筆記本用什編程軟件比較好?

vc6.0 這個有學習版的 專業版的 企業版的
只是學的話 學習版的一般幾十兆的就行了 企業版的會有幾百兆很大
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved