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

MCAD 學習筆記:委派深度理解 - 繼承鏈與四大方法

     編輯:關於ASP.NET

委派本質

委派是一個**密封類別**,繼承自 System.MulticastDelegate,再繼承 System.Delegate。

CLR 自動產生四大成員

  1. 建構函式:public DelegateType(object target, IntPtr methodPtr)。
  2. Invoke:同步呼叫,簽名與委派一致。
  3. BeginInvoke:非同步啟動,回傳 IAsyncResult,參數含 AsyncCallback、object state。
  4. EndInvoke:取得非同步結果,參數含 out/ref 參數與 IAsyncResult。

IL 反組譯證據

.class auto ansi sealed nested public MyEventHandler
       extends [mscorlib]System.MulticastDelegate
{
}

說明委派可在命名空間層級或類別內部定義,因為本質上就是類別。

建構函式呼叫鏈

MyEventHandler handler = new MyEventHandler(staticCall);
// 呼叫 MyEventHandler(object, IntPtr)
//   → MulticastDelegate(object target, string method)
//     → Delegate(object target, string method)
  • 第一參數:目標物件實例 (靜態方法為 null)。
  • 第二參數:方法指標/方法名稱。

多點廣播

MulticastDelegate 維護呼叫清單,+=/-= 操作清單,Invoke 依序執行。

總結

委派非關鍵字而是類別,理解其繼承體系與四大方法簽名,是掌握事件模式、非同步程式設計、回呼機制的基石。

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