C# 如何从VB.NET中的事件获取实际的EventHandler委托实例?

C# 如何从VB.NET中的事件获取实际的EventHandler委托实例?,c#,.net,vb.net,events,event-handling,C#,.net,Vb.net,Events,Event Handling,在C#中,我可以这样做: EventHandler handler = this.SomeEvent; …这将允许我,例如,做: Delegate[] attachedHandlers = handler.GetInvocationList(); 在VB.NET中,我似乎不知道如何做类似的事情 这不起作用: Dim handler As EventHandler = Me.SomeEvent …由于以下错误: 公共事件SomeEvent(发送方为 对象,例如EventArgs)是一个事件,

在C#中,我可以这样做:

EventHandler handler = this.SomeEvent;
…这将允许我,例如,做:

Delegate[] attachedHandlers = handler.GetInvocationList();
在VB.NET中,我似乎不知道如何做类似的事情

这不起作用:

Dim handler As EventHandler = Me.SomeEvent
…由于以下错误:

公共事件SomeEvent(发送方为 对象,例如EventArgs)是一个事件, 不能直接调用。使用 “RaiseEvent”语句以引发 事件

但这也不起作用:

Dim handler As EventHandler = AddressOf Me.SomeEvent
…因为:

“AddressOf”操作数必须是方法的名称(不带括号)


那么,如何从VB.NET中的事件中获取
EventHandler
?唯一一个立即浮现在脑海中的想法是使用反射,但这似乎非常荒谬。

如果您看一看,我有一个代码示例,说明如何通过反射获取事件的委托。据我所知,这是在VB中实现它的唯一方法

   Private Event MyEvent()
   Private delegates() As System.Delegate = MyEventEvent.GetInvocationList()

没有记录,我也找不到!这似乎是“别让那一个VB.Net开发人员看到”中的一个,我几乎想否决它,因为它太可怕了,但显然这不是你的错,所以我将改为:o)你可能更喜欢所描述的显式自定义事件声明语法。