如何将RemoveHandler
与匿名方法一起使用?
这是我为类MyEvent
的{{1}}事件添加处理程序的方法:
MyClass
如何使用AddHandler MyClass.MyEvent, Sub()
'...
End Sub
删除RemoveHandler
事件的处理程序?
答案 0 :(得分:29)
一般情况下,如果您需要取消订阅活动,我建议不要使用这样的lambda,而是使用标准方法。
话虽如此,您仍然可以使用匿名方法,但您需要存储对其进行取消订阅的引用。如果您必须取消订阅匿名方法,至少应将代理存储在变量中以便以后删除它:
Dim subscription = Sub()
' ...
End Sub
AddHandler MyClass.MyEvent, subscription
' Later
RemoveHandler MyClass.MyEvent, subscription