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

委托與事件-閒聊系列(二)

編輯:C#入門知識

  系列一講述了生活中的委托與事件的一些場景,本篇我們從C#語言的角度來闡述委托的含義。我們設想一個如下場景:中午下課鈴聲響了,你去學校食堂排隊打飯,你女朋友不想走路,讓你打包一份飯給她。下面直接上代碼:

 
     
      
           Main(
        BringLunchEventHandler lunchDelegate = +=

  女朋友讓你去帶飯,她只是相當於下了一個指令,你按照她的意思去做就行了。而她告訴你買什麼、買多少、去哪裡買,這個相當於指定一個方法的簽名,不知道這樣大家能否比較好的理解。

   BringLunchEventHandler();

  上面語句即聲明了一個委托,委托和方法實際上很相似:相比方法,委托多了一個delegate關鍵字,沒有方法體<這也為什麼說委托是一個命令,它什麼也不做>。

lunchDelegate += Girlfriend.TakeCandy;

  女朋友讓你去帶飯,也可以讓你買糖,也可以是其它什麼。C#中,通過+=運算符則可實現委托鏈-即把多個方法綁定到委托,

當委托被調用時,其綁定的方法均會依次執行。聰明的你應該想到,-=運算符即是取消某個方法的綁定。

   附加:委托是一種指向方法的類型,類似於C++中的函數指針,代表一個函數的地址。如int是一種類型,2、3、4等均是此類型的值;同理,委托也是一種類型,TakeLunch()、DoSomething(int count,String message)均是此類型的值,所以委托類型代表的是一個方法。

   上面就是我對委托的理解,如有錯誤之處,歡迎大家指正!下一篇將以同樣的方式講解事件和委托的關系!

 

      

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