In C#, I could do something like this:
EventHandler handler = this.SomeEvent;
...which would allow me to, for example, do:
Delegate[] attachedHandlers = handler.GetInvocationList();
In VB.NET, I can't seem to figure out how to do a similar thing.
This doesn't work:
Dim handler As EventHandler = Me.SomeEvent
...due to the following error:
Public Event SomeEvent(sender As
Object, e As EventArgs)' is an event,
and cannot be called directly. Use a
'RaiseEvent' statement to raise an
event.
But this doesn't work either:
Dim handler As EventHandler = AddressOf Me.SomeEvent
...because:
'AddressOf' operand must be the name of a method (without parentheses).
So how can I actually get an EventHandler
from an event in VB.NET? The only idea that's immediately coming to mind is to use reflection, but that seems pretty ridiculous.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…