委派類似 C/C++ 函式指標,但更安全、物件導向。簡單理解:「委託別人執行某操作」,呼叫端不需知道具體實作細節。
public delegate void HelloHandler(string msg);
private void SayHello(string sMsg) { MessageBox.Show(sMsg); }
// 使用
HelloHandler hHello = new HelloHandler(SayHello);
hHello("Hello World!"); // 執行時才知道具體行為
本質:處理物件間資訊交互,降低物件耦合度。
HelloHandler hHello = new HelloHandler(WriteHello1);
hHello += new HelloHandler(WriteHello2); // 串聯多個方法
hHello("Hello World!"); // 依序執行 WriteHello1 → WriteHello2
WriteHello1 拋出例外 → WriteHello2 不會執行因此多重委派建議回傳 void,且各方法自行處理例外。