事件 (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 介面事件