2012-07-30 31 views
8

這裏有區別嗎?這兩種刪除事件處理程序的方式是否有區別?

Button1.Click -= new EventHandler(Button1_Click); 

Button1.Click -= Button1_Click; 

第二種方法似乎並沒有爲我工作,但我已經看到了使用谷歌時-ING「如何刪除事件處理程序」。 編輯:其實都不是爲我工作,即使如此應該交替工作嗎?

更新:

這些似乎沒有爲我工作的原因是因爲我的AutoPostBack =在我的控制如此。我沒有設置斷點來查看事件是否被調用,我只是看了瀏覽器,看它是否刷新(意思是後回)。

+0

@MarkByers沒有其他的,我已經更新了我的問題來表明這一點。你很聰明! – Dean 2012-07-30 00:13:30

+0

聽起來像'Button1_Click'簽名可能是錯誤的。代碼是否適用於添加它們? – Enigmativity 2012-07-30 00:14:38

+0

@Enigmativity我在我的aspx頁面前端的標記中添加了事件處理程序,所以這裏沒有問題。我更新了我的問題,以解釋我在假設此代碼在其他情況下無法正常工作時所犯的錯誤。 – Dean 2012-07-30 00:26:49

回答

8

這兩段代碼是一樣的。第二種語法(稱爲「方法組轉換」)是在C#2.0中添加的一項新功能。

+4

我認爲第一個是一種誤導。它不覺得我刪除了現有的。可能很多初學者覺得這很刺激。 – dowhilefor 2012-07-30 00:12:06

+0

@dowhilefor我不再認爲自己是初學者,但仍然非常不喜歡第一種語法。從列表中刪除對象的引用,因爲我試圖刪除碰巧具有相同值的不同對象,但仍然看起來像是黑客。 – Yaur 2012-07-30 00:33:47

+0

@Yaur對不起,我並不是暗示你是初學者,而只是猜測這可能會讓其他人學習語言而感到不快。但我同意,我不認爲它是明顯的任何人。說實話,我不得不在幾個月前看看它發生了什麼,因爲我不再確定。 – dowhilefor 2012-07-30 08:35:42

0

在功能上,沒有。兩者沒有區別。至於你沒有工作的問題,如果這是一個ASP.NET應用程序,你可能想要禁用aspx頁面中的自動事件連接。

相關問題