程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#中的委托

C#中的委托

編輯:C#入門知識

第一次在編程語言中接觸委托,感覺很是生疏。敲了幾個例子自後,發現其實在面向對象語言中的委托和我們現實生活中是一樣的。比如說,小紅需要去銀行取錢,這裡取錢就是小紅這一個對象的方法。同樣如果是小明,他也可以有取錢這一個方法。如果小紅由於一些事情讓小明替她去取錢,在這裡就是委托了。也就是小明以小紅的名義去取錢,執行同樣的方法。

在C#中,委托派生於基類System.Delegate,不過委托的定義和常規的定義方法不太一樣,委托通過關鍵字delegate來定義:

public delegate void myDelegate(int x,int y)

上面的代碼定義了一個新委托,它可以封裝任何返回為int,帶有兩個int參數的方法,任何一個方法無論是實例方法還是靜態方法,只要他們的簽名(參數類型在一個方法中的順序)和定義的委托是一樣的,都可以把他們封裝到委托中去。

下面我們來看一個具體的例子吧:

為了方便理解,我在這裡就聲明具體的類了。

    public delegate void GetMoney(string name);//定義委托
    class Example2
    {
        public static void getCCBmoney(string name)
        {
            Console.WriteLine("去建行取錢!");
        }
        public static void getABCmoney(string name)
        {
            Console.WriteLine("去農行取錢!");
        }
        static void Main(string[] agrs)
        {
            GetMoney gm;
            gm = getABCmoney;//委托實例化,或者可以寫成GetMoney gm=new GetMoney(getABCmoney)
            gm("小紅");
        }
    }

輸出結果如下:

\
從上面的例子中我們可以總結出:委托是一個類,它定義了方法的類型,可以把方法當作參數來進行傳遞,這種動態的賦給參數的做法,可以大大提高程序的擴展性。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved