C#中的委託是什麼?事件是否是一種委託?事件和委託的關係。

委託能夠把一個方法做爲參數代入另外一個方法。函數

委託能夠理解爲指向一個函數的指針。spa

委託和事件沒有可比性,由於委託是類型,事件是對象,下面說的是委託的對象(用委託方式實現的事件)和(標準的event方式實現)事件的區別。事件的內部是用委託實現的。由於對於事件來說,外部只能「註冊本身+=、註銷本身-=」,外界不能夠註銷其餘的註冊者,外界不能夠主動觸發事件,所以若是用Delegate就 無法進行上面的控制,所以誕生了事件這種語法。事件是用來閹割委託實例的,類比用一個自定義類閹割List。事件只能add、remove本身,不能賦值。事件只能+=、-=,不能= 。加分的補充回答:事件內部就是一個private的委託和add、remove兩個方法指針

 

相關文章
相關標籤/搜索