目錄
- C# 委託
- 委託是什麼?
- 基本語法
- 委託的常見用法
- 總結
- 引用
C# 委託
委託是什麼?
** 委託定義一種型別,該型別封裝一個或多個方法(一個或多個方法指向委託例項)。**
委託是一種指向方法的引用。它允許您將方法儲存在變數中,並像呼叫普通方法一樣呼叫它們。委託通常用於事件處理 和非同步程式設計。
基本語法
- 定義委託型別。
public delegate <返回值型別> 委託名(<引數型別列表>);
private delegate string MyDelegate(string str);
- 建立委託例項(變數)。
<委託型別> 委託變數名;
MyDelegate myDelegate = MyMethod;
- 呼叫例項,執行方法。委託變數名(引數1, 引數2, ...);
myDelegate("Hello World!")
- 委託鏈(多播委託) 。呼叫例項後會執行多個方法。
MyDelegate myDelegate = MyMethod;
myDelegate += MyMethod2; //委託鏈(多播),先呼叫 MyMethod,在呼叫 MyMethod2
委託的常見用法
事件處理:事件通常使用委託來表示。當事件發生時,委託將呼叫所有已註冊的事件處理程式。
非同步程式設計:非同步方法通常使用委託來表示回撥方法。當非同步操作完成時,回撥方法將被呼叫。
資料轉換:委託可用於將一種型別的資料轉換為另一種型別。
總結
委託是 C# 中一項強大的功能,可用於提高程式碼的可重用性、可讀性和靈活性。您應該在程式碼中儘可能使用委託。
引用
-
博文示例程式碼 https://github.com/chi8708/DotNetNote/blob/master/Note.Basic/04Delegate.cs
-
參考文獻
- 使用委託- C# 程式設計指南 - Microsoft Learn: https://learn.microsoft.com/zh-cn/dotnet/csharp/programming-guide/delegates/
- C# 中的委託和事件(詳解): https://www.cnblogs.com/jimmyzhang/archive/2007/09/23/903360.html