C#委託

來源:互聯網
上載者:User

標籤:類   可擴充   

    剛開始在C#視頻中就看到了委託,到了大話中首先還是看這些基礎知識,對於委託我始終不太理解,因此我就上網查了一些資料並且結合自己的理解,來介紹一下委託。

    【漢語】

     把事情託付給別人或別的機構。

    【百度給出的定義】

    委託是一個類,它定義了方法的類型,使得可以將方法當作另一個方法的參數來進行傳遞,這種將方法動態地賦給參數的做法,可以避免在程式中大量使用If-Else(Switch)語句,同時使得程式具有更好的可擴充性。

    【我的理解】

     委託相當於就是一個函數,它有某種功能,其變數是一種方法,通過委託能夠間接的調用該方法。實際上委託時對函數的封裝。

     理解了委託之後我們應該怎樣應用呢?首先就是要定義一個委託,這跟一般的類沒有差別,感覺到了熟悉。

    //聲明委託 CatShoutEventHandler    public delegate void CatShoutEventHandler();

    定義一個方法

class Mouse{    private string name;    public Mouse(string name)    {        this.name = name;    }    //定義了一個方法    public void Run()    {        Console.WriteLine("老貓來了,{0}快跑!",name );    }}
      執行個體化該委託,並實現調用

cat.CatShout += new Cat.CatShoutEventHandler(mouse1.Run);            cat.CatShout += new Cat.CatShoutEventHandler(mouse2.Run);

      注意:委託執行個體化後還是一個委託,通過委託調用mouse.Run的方法,實現間接調用,避免直接去修改Mouse這個類,這符合開放-封閉原則。
     【總結】

      委託,就是實現了調用一個方法,一旦委託分配了方法,委託將具有與該方法完全相同的行為。這是我暫時的理解,在以後模式中還會再次深刻討論委託,期待對委託有更深刻的理解。





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.