В C # я мог бы сделать что-то вроде этого:
EventHandler handler = this.SomeEvent;
... что позволило бы мне, например, сделать:
Delegate[] attachedHandlers = handler.GetInvocationList();
В VB.NET,Я не могу понять, как сделать подобное.
Это не работает:
Dim handler As EventHandler = Me.SomeEvent
... из-за следующей ошибки:
Открытое событие SomeEvent (отправитель как объект, e как EventArgs) - это событие, которое не может быть вызвано напрямую.Используйте оператор RaiseEvent, чтобы вызвать событие.
Но это тоже не работает:
Dim handler As EventHandler = AddressOf Me.SomeEvent
..., потому что:
* 1023Операндом 'AddressOf' должно быть имя метода (без скобок).
Так как же на самом деле получить EventHandler
из события в VB.NET?Единственная идея, которая сразу приходит на ум, - это использовать рефлексию, но это выглядит довольно нелепо.