C#委託

Aigu發表於2024-05-11

目錄
  • C# 委託
    • 委託是什麼?
    • 基本語法
    • 委託的常見用法
    • 總結
    • 引用

C# 委託

委託是什麼?

** 委託定義一種型別,該型別封裝一個或多個方法(一個或多個方法指向委託例項)。**
委託是一種指向方法的引用。它允許您將方法儲存在變數中,並像呼叫普通方法一樣呼叫它們。委託通常用於事件處理 和非同步程式設計。

基本語法

  1. 定義委託型別。
    public delegate <返回值型別> 委託名(<引數型別列表>);
  private  delegate string MyDelegate(string str);
  1. 建立委託例項(變數)。
    <委託型別> 委託變數名;
  MyDelegate myDelegate = MyMethod;
  1. 呼叫例項,執行方法。委託變數名(引數1, 引數2, ...);
myDelegate("Hello World!")
  1. 委託鏈(多播委託) 。呼叫例項後會執行多個方法。
MyDelegate myDelegate = MyMethod;
myDelegate += MyMethod2; //委託鏈(多播),先呼叫 MyMethod,在呼叫 MyMethod2

委託的常見用法

事件處理:事件通常使用委託來表示。當事件發生時,委託將呼叫所有已註冊的事件處理程式。

非同步程式設計:非同步方法通常使用委託來表示回撥方法。當非同步操作完成時,回撥方法將被呼叫。

資料轉換:委託可用於將一種型別的資料轉換為另一種型別。

總結

委託是 C# 中一項強大的功能,可用於提高程式碼的可重用性、可讀性和靈活性。您應該在程式碼中儘可能使用委託。

引用

  1. 博文示例程式碼 https://github.com/chi8708/DotNetNote/blob/master/Note.Basic/04Delegate.cs

  2. 參考文獻

  • 使用委託- 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

相關文章