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

C# 委托淺析:定義、用途與範例

     編輯:關於C語言

什麼是委托

委托是對類別中方法的參考,本身不包含實作,只指向符合簽章的方法。類似 C++ 的函數指標或 Delphi 的程序型別,但具型別安全。

委托的用途

委托實現「方法作為參數」傳遞,支援回呼、事件處理、策略模式等。呼叫者不需知悉具體執行方法,僅透過委托調用。

經典範例:秘書模式

class Secretary
{
    private delegate string Do(string command);
    public Do DoIt;

    public void ExecuteCommand(string command)
    {
        switch (command)
        {
            case "Market":
                DoIt = new Do(new MarketMan().GetMarketInfo);
                break;
            case "Product":
                DoIt = new Do(ProductMan.ProduceProduct);
                break;
        }
        DoIt(command);
    }
}

class MarketMan { public string GetMarketInfo(string cmd) { /*...*/ return "Market Info"; } }
class ProductMan { public static string ProduceProduct(string cmd) { /*...*/ return "Product Info"; } }

class Boss
{
    public static void Main()
    {
        new Secretary().ExecuteCommand("Market");
    }
}

重點說明

  • 委托可指向實例方法或靜態方法。
  • 委托實例化時綁定目標方法,調用時自動轉發。
  • 此模式解耦「發號施令者」與「實際執行者」。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved