我看到了一些使用-= new EventHandler(anEvent)的代码,您能告诉我‘+= new EventHandler’有什么不同吗?
谢谢
发布于 2009-07-06 23:41:55
一个将委托添加到订阅服务器集合中,另一个将其移除。
例如,如果您以前订阅了一个事件,但是当您关闭一个表单时,您希望删除引用,那么您将使用-=版本,并且不会再收到通知。
发布于 2009-07-06 23:42:32
-=操作符从事件中移除偶数处理程序,而+=将事件处理程序添加到事件中。
例如:
if (checkSomething())
{
//handle clicks on myControl
myControl.Click += MyEventHanderMethod;
}
else
{
//stop handling clicks on myControl
myControl.Click -= MyEventHanderMethod;
}发布于 2009-07-06 23:46:57
我想人们永远不应该使用-= new EventHandler(anEvent),因为新的事件处理程序还不能出现在事件委托列表中。我们应该这样做:
EventHandler eventHandler = new EventHandler(anEvent);
anObject.Event += eventHandler;
...
anObject.Event -= eventHandler;更新的
实际上Ed是正确的,委托将检查目标和方法,而不是处理程序对象。我学这个有点晚了,我写的很多行都过时了.
https://stackoverflow.com/questions/1089696
复制相似问题