如何接收在vb中引发的c#中的事件?

如何接收在vb中引发的c#中的事件?,c#,C#,我需要使用一个用visual basic编写的遗留库,它会引发一些事件。实际上,如果引发了一个事件,我不知道如何在我的新c#项目中绑定操作 遗留代码中的事件定义如下 Public Event OnStartOfMainLoop(ByRef evt As HandlerEvent, ByVal datapath As String, ByRef skipRun As Boolean, ByRef refreshQueueMap As Boolean, ByRef refreshFormsMap A

我需要使用一个用visual basic编写的遗留库,它会引发一些事件。实际上,如果引发了一个事件,我不知道如何在我的新c#项目中绑定操作

遗留代码中的事件定义如下

Public Event OnStartOfMainLoop(ByRef evt As HandlerEvent, ByVal datapath As String, ByRef skipRun As Boolean, ByRef refreshQueueMap As Boolean, ByRef refreshFormsMap As Boolean)
并提出

RaiseEvent OnStartOfMainLoop(evt, datapath, skipRun, refreshQueueMap, refreshFormsMap)
现在,我如何在我的新项目中接收并处理此事件?

在C#中,您只需订阅此事件:

obj.OnStartOfMainLoop += MyEventHandlerMethod;

public void MyEventHandlerMethod(ref HandlerEvent evt, string datapath,
        ref bool skipRun, ref bool refreshQueueMap, ref bool refreshFormsMap)
{
    //Handle the event here
}
其中,
obj
是您订阅的对象的实例,
MyEventHandlerMethod
是您希望将其路由到的方法


您需要确保处理程序方法正确实现事件所需的签名。

objectWithThisEvent.OnStartOfMainLoop+=MyHandler
为什么要将
ByRef
布尔值传递到事件处理程序中?我想您必须添加
ref
修饰符,因为OP的参数是
ByRef
。可能是错的,有一段时间没有使用VB.NET了。@AsadSaeeduddin是的,我已经更新了答案。谢谢