當前位置:編程學習大全網 - 編程語言 - 關於C#委托和事件的問題:剛學了委托和事件 ,不理解其中的概念 ,求解

關於C#委托和事件的問題:剛學了委托和事件 ,不理解其中的概念 ,求解

當用戶單擊控件,或者鼠標停留在某個區域,將產生壹個事件,事件由控件類或窗口類提供,例如Button類當按鈕按下時發出通知。

為了編程方便,常將引發事件的程序放在單獨的模塊或者組件,組件通常是壹個類。例如控件類或窗口類都是單獨的類。當發生事件時,發送類(或稱控件類)將事件通知主程序類或接受類,並傳遞有關的參數。執行通知的手段是綁定壹個方法,接受類將方法綁定到發送類的事件,當發送類發事件時,接受類中綁定到事件的方法被執行。

事件是委托類型,可以采用加法賦值運算符+=將方法和事件綁定。妳可以查看WinForm程序的Designer.cs,裏面的控件處理程序都是+=符號綁定事件處理程序。接收類必須具有與事件相同簽名(如委托簽名)的方法。然後,該方法(稱為事件處理程序)可以采取適當的操作來響應事件。但是編程員不需要事先費力地在接受類構造綁定事件的方法,當輸入符號+=時,編程系統提示按Tab鍵自動添加綁定方法的名稱,第二次按Tab鍵自動添加方法的參數,並與發送類的委托簽名壹致。

.NET Framework中事件的簽名,通常第壹個參數為引用事件源的對象,第二個參數為壹個傳送與事件相關的數據的類。但是在C#語言中並不強制使用這種形式,只要事件簽名返回void,其他方面可以與任何有效的委托簽名壹樣。

關鍵字event聲明事件。委托是事件的基礎,事件的類型必須是委托類型,因此聲明事件前先聲明委托。壹個簡單的例子如下:

public delegate void Handler

class test

{

public event Handler OnClick;

}

這裏先在類的外部聲明委托Handler,然後在類的內部用關鍵字event聲明事件,也可以在類的內部聲明委托。OnClick是Handler類型,由委托Handler代理事件的實現,封裝壹個方法實現事件。

委托返回類型必須是void,但可以帶有參數,例如:

public delegate void TestEventDelegate(object sender, System.EventArgs e);

事件和方法壹樣具有簽名,簽名包括名稱和參數列表。事件的簽名通過委托類型來定義,委托的參數列表就是事件的列表。

因篇幅有限,不能舉例說明,請看我的博客,在百度網頁欄目搜163博客danyaody,第3章例3-14。

  • 上一篇:我家養了條狗幫我取名
  • 下一篇:買光固化3D打印機,買黑白屏好還是彩屏好?
  • copyright 2024編程學習大全網