C#委託與事件

來源:互聯網
上載者:User

標籤:

委託

 定義委託的文法和定義方法比較相似,只是比方法多了一個關鍵字delegate , 我們都知道方法就是將型別參數化,所謂的型別參數化就是說該方法接受一個參數,而該參數是某種類型的參數,比如int、string等等;而委託是將方 法參數化,說了上面的那個型別參數化之後,相信你也能猜到方法參數化的意思了,對,就是將方法作為一個參數傳到一個委託中。

首先來看看聲明委託的語句:

public deletate void MyDelegate();  

public:存取修飾詞  delegate:關鍵字  void:傳回型別  MyDelegate:委託名稱  ( ):參數列表  

 

看 到聲明大家會想了,為什麼該委託的傳回值,參數列表要這樣的,我不能返回一個 string,一個int嗎?我不能給委託加幾個參數嗎? 答案是:當然可以,但委託的定義是相對於方法來說的,因為得你的委託最終是要來註冊方法的,而你的方法是具有某種簽名的,所以你要給怎樣簽名的方法來聲明 一個委託,該委託就要和該方法具有同等的簽名,就類似於你用一個int 類型的變數去接受一個string類型的值,顯然是不行的(個人理解).... 

 * 委託只要定義就可以了,我們並不需要關心他的實現 

 

委託的使用

註冊委託有兩種方法:

第一種:直接將方法賦值[=]或者用“+=” 給一個委託==>委託名 =[+=]  方法名 

第二種:委託本質也是一個類,只是一個特殊的類,所以我們也可以執行個體化一個委派物件通過委託建構函式來註冊委託==》委託名 對象名= new 委託名(方法名)

 

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.