VB.NET RemoveHandler & Anonymous Methods



如何使用匿名方法的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

相关内容

最新更新