C#委託初學

來源:互聯網
上載者:User

標籤:異常   輸出參數   聲明   參數   引用   bsp   補充   有序   void   

1、什麼是委託

  委託可以認為是包含具有相同簽名和傳回值類型的有序方法的對象。

2、聲明委託類型

  委託是類型,和類一樣,委託類型必須在被用來建立變數以及類型的對象之前聲明。

  委託中所包含的方法必須與聲明委託的傳回值類型、簽名相同。

     例:delegate void HelloWord(string name);

  委託型別宣告與方法有兩個不同:1以關鍵字delegate開頭,沒有方法主體“;”代替。

3、建立委派物件

    委託是參考型別,因此有引用和對象。在委託型別宣告之後,可以聲明變數並建立類型的對象。

    委託類型名    變數        方法

    HelloWord chinese = Chinese;

    HelloWord chinese = new HelloWord(Chinese);

    方法可以使執行個體方法或靜態方法都可以。

    Program pro = new Program();

    HelloWord english = pro.English;

4、賦值委託

    由於委託是參考型別,我們可以通過賦值來改變包含在委託變數中的引用。

    例:HelloWord chinese = Chinese;

         HelloWord chinese = Chinese2;//上一個委託會被銷毀

5、組合委託

    委託可以使用運算子來組合建立新的委託。

    HelloWord ChineseAndEnglish = chinese + english;

6、委託增加方法

  HelloWord chinese += pro.English;

     增加方法實際上是產生了一個新的委託,其調用列表是左邊的委託加上右邊的方法的組合。

  方法是加在調用方法列表的最底部。

7、委託移除方法

  HelloWord chinese -= pro.English;

  和增加方法一樣也是產生了一個新的委託,新的委託是舊的委託的副本,只是沒有了被移除方法的引用。

     移除委託的注意事項:

    -=運算子從列表最後開始搜尋並移除一個匹配的方法;

    試圖刪除不存在方法沒有效果;

    試圖刪除空委託會拋出異常;

    可以把委託和null比較判斷委託的調用列表是否為空白,為空白則為null;

8、調用委託

  用於調用委託的參數會被調用與列表的每一個方法(除非有一個參數是輸出參數)

  一個方法可以在列表中出現多次,每次調用到方法時都會被調用一次。

    delegate void HelloWord(string name);    class Program    {        static void Chinese(string name)        {            Console.WriteLine("你好:" + name);        }        void English(string name)        {            Console.WriteLine("Hello:" + name);        }        static void Main(string[] args)        {
HelloWord chinese = Chinese; Program pro = new Program();
HelloWord english = pro.English; chinese("小明"); english("Alex"); } }

後面的慢慢補充。

C#委託初學

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.