如何使用匿名方法的RemoveHandler
?
这是我如何为MyClass
类的MyEvent
事件添加处理程序:
AddHandler MyClass.MyEvent, Sub()
'...
End Sub
我如何使用RemoveHandler
来删除MyEvent
事件的处理程序?
一般来说,如果您需要取消订阅事件,我建议不要使用这样的lambda,而是使用标准方法。
也就是说,您仍然可以使用匿名方法,但是您需要为取消订阅存储对它的引用。如果必须取消订阅匿名方法,则至少应将委托存储在变量中,以便稍后将其删除:
Dim subscription = Sub()
' ...
End Sub
AddHandler MyClass.MyEvent, subscription
' Later
RemoveHandler MyClass.MyEvent, subscription