这两种删除事件处理程序的方法有区别吗?

Dea*_*ean 8 .net c# event-handling

这里有区别吗?

Button1.Click -= new EventHandler(Button1_Click);
Run Code Online (Sandbox Code Playgroud)

Button1.Click -= Button1_Click;
Run Code Online (Sandbox Code Playgroud)

第二种方法对我来说似乎不起作用,但我已经看到它在Google-ing'如何删除事件处理程序'时使用.编辑:实际上两个都不适合我,即使这样也应该互换?

更新:

这些似乎对我不起作用的原因是因为我的控件上有AutoPostBack = true.我没有设置断点来查看事件是否被调用,我只是看着浏览器看它是否刷新(意味着回发).

Mar*_*ers 8

这两段代码是一样的.第二种语法(称为"方法组转换")是C#2.0中添加的新功能.

  • 我认为第一个是有点误导.我不觉得我删除现有的.可能很多初学者都觉得这很刺激. (4认同)