共用方式為


事件 (C# 程式設計手冊)

更新:2007 年 11 月

事件可讓類別或物件在某些相關的事情發生時,告知其他類別或物件。傳送 (或「引發」(Raise)) 事件的類別稱為「發行者」(Publisher),而接收 (或「處理」(Handle)) 事件的類別則稱為「訂閱者」(Subscriber)。

在典型的 C# Windows Form 或 Web 應用程式中,您會訂閱由控制項 (如按鈕和清單方塊) 引發的事件。您可以使用 Visual C# 整合式開發環境 (IDE) 來瀏覽控制項發行的事件,並選擇您想要處理的事件。IDE 會自動加入空的事件處理常式方法和程式碼,以訂閱該事件。如需詳細資訊,請參閱HOW TO:訂閱及取消訂閱事件 (C# 程式設計手冊)

事件概觀

事件有下列屬性:

  • 發行者會判斷引發事件的時間,而訂閱者則決定要採取什麼動作來回應該事件。

  • 一個事件可以有多個訂閱者,訂閱者可以處理來自多個發行者的多個事件。

  • 沒有訂閱者的事件永遠不會被引發。

  • 事件通常用於對使用者的動作 (例如在圖形化使用者介面內按一下按鈕或選取功能表) 發出信號。

  • 當某事件擁有多個訂閱者時,便會在事件引發的同時叫用事件處理常式。若要以非同步方式叫用事件,請參閱以非同步的方式呼叫同步方法

  • 事件可用來讓執行緒同步。

  • 在 .NET Framework 類別庫 (Class Library) 中,事件會根據 EventHandler 委派 (Delegate) 和 EventArgs 基底類別 (Base Class)。

相關章節

如需詳細資訊,請參閱:

C# 語言規格

如需詳細資料,請參閱 C# 語言規格中的下列章節:

  • 1.6.7.4 事件

  • 10.2.9.2 保留給事件的成員名稱

  • 10.8 事件

  • 13.2.3 介面事件

請參閱

概念

C# 程式設計手冊

參考

委派 (C# 程式設計手冊)

EventHandler

其他資源

在 Windows Form 中建立事件處理常式

使用事件架構非同步模式設計多執行緒程式