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