首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“+= new EventHandler”和“-= new EventHandler(AnEvent)”的区别

“+= new EventHandler”和“-= new EventHandler(AnEvent)”的区别
EN

Stack Overflow用户
提问于 2009-07-06 23:39:40
回答 4查看 2.1K关注 0票数 2

我看到了一些使用-= new EventHandler(anEvent)的代码,您能告诉我‘+= new EventHandler’有什么不同吗?

谢谢

EN

回答 4

Stack Overflow用户

发布于 2009-07-06 23:41:55

一个将委托添加到订阅服务器集合中,另一个将其移除。

例如,如果您以前订阅了一个事件,但是当您关闭一个表单时,您希望删除引用,那么您将使用-=版本,并且不会再收到通知。

票数 12
EN

Stack Overflow用户

发布于 2009-07-06 23:42:32

-=操作符从事件中移除偶数处理程序,而+=将事件处理程序添加到事件中。

例如:

代码语言:javascript
复制
if (checkSomething())
{
//handle clicks on myControl
myControl.Click += MyEventHanderMethod;
}
else
{
//stop handling clicks on myControl
myControl.Click -= MyEventHanderMethod;
}
票数 2
EN

Stack Overflow用户

发布于 2009-07-06 23:46:57

我想人们永远不应该使用-= new EventHandler(anEvent),因为新的事件处理程序还不能出现在事件委托列表中。我们应该这样做:

代码语言:javascript
复制
EventHandler eventHandler = new EventHandler(anEvent);
anObject.Event += eventHandler;
...
anObject.Event -= eventHandler;

更新的

实际上Ed是正确的,委托将检查目标和方法,而不是处理程序对象。我学这个有点晚了,我写的很多行都过时了.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1089696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档