Is there a way to know in VB.NET if a handler has been registered for an event?

前端 未结 6 1339
难免孤独
难免孤独 2021-01-17 14:07

In C# I can test for this...

public event EventHandler Trigger;
protected void OnTrigger(EventArgs e)
{
    if (Trigger != null)
        Trigger(this, e);
}
         


        
6条回答
  •  独厮守ぢ
    2021-01-17 14:46

    There's an interesting language "feature" in VB .NET. A member variable is created for events that exposes the delegate:

    Public Event MyEvent As EventHandler
    Public Sub Test()
    
        Dim test = MyEventEvent
        Dim invokers = test.GetInvocationList()
    
    End Sub
    

    You can actually get the invocation list this way.

提交回复
热议问题