VB.NET RemoveHandler 和匿名方法

标签 vb.net anonymous-methods addhandler

如何将 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/

相关文章:

delphi - 在Delphi 2009中使用泛型和匿名方法有什么问题?

c# - 好的,这有效。究竟是什么?

c# - 如何将 ValueTuple 命名功能与匿名方法一起使用?

c# - 地址不工作

c# - 在 WinRT 中更改系统音量

c# - 多项目 Visual Studio 解决方案无法调试一个项目 DLL

vb.net - Visual Studio 自定义控件错误的 AddHandler

wpf - 触发时间延迟

vb.net - Installshield自定义对话安装程序