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

Effective C#:用委派實現回呼 (1) - 基礎概念、事件與多重綁定

     編輯:關於C語言

什麼是委派

委派類似 C/C++ 函式指標,但更安全、物件導向。簡單理解:「委託別人執行某操作」,呼叫端不需知道具體實作細節。

基本範例

public delegate void HelloHandler(string msg);
private void SayHello(string sMsg) { MessageBox.Show(sMsg); }

// 使用
HelloHandler hHello = new HelloHandler(SayHello);
hHello("Hello World!"); // 執行時才知道具體行為

委派最常見應用:事件

  • 事件初始化綁定處理函式
  • 事件觸發時自動呼叫處理函式
  • 例如按鈕 Click 事件回饋給表單

本質:處理物件間資訊交互,降低物件耦合度。

委派優於函式指標:多重綁定

HelloHandler hHello = new HelloHandler(WriteHello1);
hHello += new HelloHandler(WriteHello2); // 串聯多個方法
hHello("Hello World!"); // 依序執行 WriteHello1 → WriteHello2

多重綁定的兩大風險

  1. 例外中斷鏈:WriteHello1 拋出例外 → WriteHello2 不會執行
  2. 回傳值覆蓋:只能獲得最後一個方法的回傳值

因此多重委派建議回傳 void,且各方法自行處理例外。

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