首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

淺析 Java 與 C# 事件處理機制(三)

     編輯:關於C語言

Java 適配器類別

當多個監聽者需篩選響應時,插入適配器:事件源註冊適配器,適配器決定轉發給哪些真實監聽者。多數 IDE 產生代碼皆採此模式。

C# 事件處理核心

  • 事件成員:public event EventHandler Click;
  • 委派:public delegate void EventHandler(object sender, EventArgs e); —— 類型安全的函數指標。
  • 訂閱/退訂:btn.Click += new EventHandler(Handler); / -=
  • 單一事件可掛多個處理器;單一處理器可服務多事件。

處理器簽名彈性

處理器不拘泥於固定簽名,只要符合委派定義即可。自訂委派範例:


delegate int MyHandler(object sender, ToolBarButtonClickEventArgs e);
int MyMethod(object s, ToolBarButtonClickEventArgs e) { ... }
ctrl.Event += new MyHandler(MyMethod);

比較總結

面向JavaC#
架構源-監聽者(二層)源-委派-處理器(三層)
耦合度較高鬆散(委派中介)
彈性需適配器類別原生支援多播、動態綁定

C# 委派機制讓事件系統更靈活、型別安全,且無需手寫適配器。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved