VB.NET RemoveHandler&匿名方法

时间:2011-09-16 15:40:08

标签: vb.net anonymous-methods addhandler

如何将RemoveHandler与匿名方法一起使用?

这是我为类MyEvent的{​​{1}}事件添加处理程序的方法:

MyClass

如何使用AddHandler MyClass.MyEvent, Sub() '... End Sub 删除RemoveHandler事件的处理程序?

1 个答案:

答案 0 :(得分:29)

一般情况下,如果您需要取消订阅活动,我建议不要使用这样的lambda,而是使用标准方法。

话虽如此,您仍然可以使用匿名方法,但您需要存储对其进行取消订阅的引用。如果您必须取消订阅匿名方法,至少应将代理存储在变量中以便以后删除它:

Dim subscription = Sub()
                            ' ...
                   End Sub

AddHandler MyClass.MyEvent, subscription

' Later   
RemoveHandler MyClass.MyEvent, subscription