Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 这两种删除事件处理程序的方法有区别吗?_C#_.net_Event Handling - Fatal编程技术网

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

C# 这两种删除事件处理程序的方法有区别吗?,c#,.net,event-handling,C#,.net,Event Handling,这里有区别吗 Button1.Click -= new EventHandler(Button1_Click); 及 第二种方法似乎对我不起作用,但我在谷歌搜索“如何删除事件处理程序”时见过它编辑:实际上两者都不适用于我,即使如此,两者是否应该互换工作 更新: 这些对我来说似乎不起作用的原因是我的控件上有AutoPostBack=true。我没有设置断点来查看事件是否被调用,我只是观察浏览器是否刷新(意味着回发)。这两段代码是相同的。第二种语法(称为“方法组转换”)是C#2.0中添加的一项新功

这里有区别吗

Button1.Click -= new EventHandler(Button1_Click);

第二种方法似乎对我不起作用,但我在谷歌搜索“如何删除事件处理程序”时见过它编辑:实际上两者都不适用于我,即使如此,两者是否应该互换工作

更新:


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

这两段代码是相同的。第二种语法(称为“方法组转换”)是C#2.0中添加的一项新功能。

从功能上讲,不是。两者之间没有区别。至于您关于两者都不起作用的问题,如果这是一个ASP.NET应用程序,您可能需要在aspx页面中禁用自动事件wireup。

我认为第一个问题有点误导。我不觉得我删除了现有的一个。可能很多初学者觉得恼人。我不认为自己是初学者,但仍然不喜欢第一个语法。从列表中删除对某个对象的引用,因为我试图删除另一个恰好具有相同值的对象,这看起来仍然像是一个黑客。@Yaur抱歉,我不是在暗示你是初学者,只是猜测这可能会激怒其他学习该语言的人。但我同意,我不认为这对任何人来说都是显而易见的。老实说,我得查一查几个月前那里到底发生了什么,因为我也不确定了。@MarkByers不,事实上,我已经更新了我的问题来说明这一点。你真精明!听起来,
按钮1\u单击
签名可能有误。添加它们的代码有效吗?@Enigmativity我在aspx页面前端的标记中添加了事件处理程序,因此没有问题。我已经更新了我的问题,以解释我在假设这段代码不工作时犯的错误。
Button1.Click -= Button1_Click;