【发布时间】:2009-08-27 15:38:26
【问题描述】:
我对在 C# 中删除事件处理程序的语法感到困惑。
Something += new MyHandler(HandleSomething); // add
Something -= new MyHandler(HandleSomething); // remove
“new”在每一行创建一个新对象,所以你添加一个对象 然后让它移除一个不同的对象。
这到底是怎么回事?
从语法上肯定看不出来。
【问题讨论】:
-
删除对象在委托列表中搜索与给定对象的目标和方法匹配的对象,然后将其删除。
-
你不必使用新的 MyHandler,它只是一个委托的包装器。
-
对这个话题的回答:stackoverflow.com/questions/1178725/how-to-unset-event也有一些关于这个主题的讨论。
-
另一个密切相关的线程stackoverflow.com/questions/99790/…