簡體   English   中英

刪除事件處理程序

[英]Removing event handlers

這是:

Button.Click -= new EventHandler(Button_Click);

與此相同:

Button.Click -= Button_Click;

我問,因為對我來說,似乎前者正在刪除對方法的新引用,而后者正在刪除方法本身。 但話說回來,如果程序員沒有明確地分配它,那么新的EventHandler部分可能隱含在+ =或 - =重載中?

萬一它是不同的如何

Button.Click -= new EventHandler(Button_Click);

VS

Button.Click -= Button_Click;

謝謝。

這是相同的。 第二個只是第一個的語法糖,並且對於委托類型適當地重載了相等比較:

具有相同目標,方法和調用列表的兩個相同類型的委托被認為是相等的。

來源: MSDN,Delegate.Equality運營商

最終結果是一樣的。 編譯器會自動推斷委托的類型,因此不需要新的運算符來創建委托。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM