如何将 RemoveHandler
与匿名方法一起使用?
这是我为 MyClass
类的 MyEvent
事件添加处理程序的方法:
AddHandler MyClass.MyEvent, Sub()
'...
End Sub
如何使用 RemoveHandler
删除 MyEvent
事件的处理程序?
最佳答案
一般来说,如果您需要取消订阅事件,我建议不要使用这样的 lambda,而是使用标准方法。
话虽这么说,您仍然可以使用匿名方法,但您需要存储对其的引用以用于取消订阅。如果必须取消订阅匿名方法,至少应该将委托(delegate)存储在变量中以便稍后将其删除:
Dim subscription = Sub()
' ...
End Sub
AddHandler MyClass.MyEvent, subscription
' Later
RemoveHandler MyClass.MyEvent, subscription
关于VB.NET RemoveHandler 和匿名方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7447168/