c#委托是什么?事件是不是一種委托?


C#的委托是CTS(公共類型系統)規定的5中類型之一(類類型、結構類型、接口類型、枚舉類型、委托類型)。它類似於c或c++中的函數的指針,但函數指針只能引用靜態方法,而委托既能引用靜態方法,也能引用實例方法。委托是存在有對某個方法的引用的一種引用類型變量(也就是委托類型),引用可在運行是被修改。

   C#的事件並不是委托的一種,在網上查了許多資料,許多人認為事件是一種特殊的委托,但是並非如此。事件(Event) 基本上可以說是一個用戶操作,如按鍵、點擊、鼠標移動等等,或者是一些系統生成的通知。事件使用的是發布和訂閱的模型,也就是說聲明事件的類為發布器,而需要對這個事件進行處理的類則為訂閱器,那訂閱器要怎么知道這個事件是否發生了呢?這個時候就用到了委托,委托負責告訴訂閱器事件發生了,並告訴他要調用哪個方法,委托其實是發布器和訂閱器之間的一個橋梁。

   所以事件的實現依賴於委托,但事件並非是委托的一種。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM