C# 如何从VB.NET中的事件获取实际的EventHandler委托实例?
在C#中,我可以这样做: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)是一个事件,
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)你可能更喜欢所描述的显式自定义事件声明语法。