VB.NET RemoveHandler & Anonymous Methods

addhandler, anonymous-methods, vb.net

Solution

In general, if you need to unsubscribe from the event, I would recommend not using a lambda like this, and instead use a standard method.

That being said, you can still use the anonymous method, but you need to store a reference to it for the unsubscription. If you must unsubscribe an anonymous method, at a minimum, you should store the delegate in a variable to remove it later:

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

AddHandler MyClass.MyEvent, subscription

' Later   
RemoveHandler MyClass.MyEvent, subscription

Problem

How do I use `RemoveHandler` with anonymous methods? This is how I add a handler for `MyEvent` event of the class `MyClass`: ``` AddHandler MyClass.MyEvent, Sub() '... End Sub ``` How do I then use `RemoveHandler` to remove the handler for the `MyEvent` event?

Original source