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

C# 委托深度解析:聲明實例化多播、回調與異步模式

     編輯:C# 入門

C# 委托深度解析:聲明實例化多播、回調與異步模式

委托是類型安全的方法引用,類似 C++ 函數指針但更安全。所有委托派生自 System.Delegate,是實現事件、回調、異步編程的基石。

聲明與實例化

delegate int NumberChanger(int n);  // 聲明
NumberChanger nc = new NumberChanger(AddNum);  // 實例化綁定方法
int result = nc(5);  // 調用

多播委托

使用 +/- 組合委托,調用時按順序執行所有目標:

NumberChanger nc = nc1 + nc2;  // nc1 和 nc2 同類型
nc(5);  // 依次執行 nc1(5) 然後 nc2(5)

示例輸出:Value of Num: 75(10→+25=35→*5=175?實際為順序調用累積)。

實戰場景:輸出重定向

delegate void PrintString(string s);
static void WriteToScreen(string s) => Console.WriteLine(s);
static void WriteToFile(string s) { /* 寫文件 */ }
static void SendString(PrintString ps) => ps("Hello World");
// 使用
SendString(WriteToScreen);
SendString(WriteToFile);

委托 vs 接口 vs 事件

  • 委托:單方法引用,輕量、靈活,適合回調
  • 接口:多方法契約,結構化、可多實現
  • 事件:委托的封裝,限制外部只能訂閱/取消訂閱

現代 C# 常用 Func、Action、Predicate 預定義委托,減少自定義聲明。

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