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

C# 委派完整入門:類型安全的方法參考、靜態/實例方法封裝與多播

     編輯:關於C#

為什麼需要委派?

C/C++ 的指標雖強大但不安全(型別不匹配、記憶體錯誤)。C# 移除指標(除非 unsafe),改以委派提供類型安全的方法參考。

委派宣告

delegate int MyDelegate(); // 無參數、回傳 int 的方法簽章
  • 不可有 out 參數。
  • 實際上繼承自 System.Delegate。

封裝靜態與實例方法

using System;
delegate int MyDelegate();

public class MyClass {
    public int InstanceMethod() {
        Console.WriteLine("Call instance method.");
        return 0;
    }
    static public int StaticMethod() {
        Console.WriteLine("Call static method.");
        return 0;
    }
}

public class Test {
    static void Main() {
        MyClass p = new MyClass();
        MyDelegate d = new MyDelegate(p.InstanceMethod); // 實例方法
        d();
        d = new MyDelegate(MyClass.StaticMethod);        // 靜態方法
        d();
    }
}

輸出:

Call instance method.
Call static method.

關鍵特性

  • 類型安全:簽章不符編譯即報錯。
  • 物件導向:委派本身是物件,可傳遞、儲存、串連(多播)。
  • 支援實例與靜態方法:建構時傳入 實例.方法 或 類別.靜態方法。

應用場景

  • 事件處理(event 關鍵字基礎)
  • 回呼函式
  • 策略模式、比較器(Comparison<T>)
  • LINQ 委派鏈(Func<T, TResult>、Action<T>)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved