Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将EventHandler作为参数从C#传递到VB.NET_C#_Vb.net_Event Handling - Fatal编程技术网

将EventHandler作为参数从C#传递到VB.NET

将EventHandler作为参数从C#传递到VB.NET,c#,vb.net,event-handling,C#,Vb.net,Event Handling,我有现有的VB GUI代码,我正在尝试与一些C#代码交互,但无法解决如何将EventHandler传递到VB.NET C#签名为: public void SendLatestImages(Guid PatientID, Guid ToPracticeID, EventHandler<ProgressChangedEventArgs> progressChangedHandler) { ... } 到目前为止还不错。但在ProgressStream_

我有现有的VB GUI代码,我正在尝试与一些C#代码交互,但无法解决如何将EventHandler传递到VB.NET

C#签名为:

public void SendLatestImages(Guid PatientID, Guid ToPracticeID, EventHandler<ProgressChangedEventArgs> progressChangedHandler)
    {
        ...
    }
到目前为止还不错。但在ProgressStream_ProgressChanged函数中,我只得到:

Private Function ProgressStream_ProgressChanged() As EventHandler(Of SLSyncClient.ProgressChangedEventArgs)

End Function
。。。无法访问我正在查找的实际ProgressChangedEventArgs。在C#中,最后一个函数的签名是

private void ProgressStream_ProgressChanged(object sender, ProgressChangedEventArgs e)
。。。这给了我args作为e。
这里我遗漏了什么?

您的问题是
ProgressStream\u ProgressChanged
是一个返回事件处理程序的方法,而不是一个作为事件处理程序本身的方法。您的代码所做的是调用
ProgressStream\u ProgressChanged
(在VB中不需要括号),并将其结果传递给
SendLatestImages

您要做的是将
ProgressStream\u ProgressChanged
转换为与
EventHandler
委托匹配的
Sub
(而不是返回它的
函数):

然后,您可以使用
AddressOf
从中创建一个委托(在C中,您不需要任何运算符,在VB中则需要):


完美的我找不到他的地址。(我用正确的签名试过潜艇)。谢谢你@svick
private void ProgressStream_ProgressChanged(object sender, ProgressChangedEventArgs e)
Private Sub ProgressStream_ProgressChanged(sender As Object, args As ProgressChangedEventArgs)
End Sub
sendImages.SendLatestImages(arg.PatientID, arg.ToPracticeID, AddressOf ProgressStream_ProgressChanged)