将c转换为vb是一个事件,不能直接调用
本文关键字:事件 一个 不能 调用 转换 vb | 更新日期: 2023-09-27 18:10:35
我正试图将以下c#代码转换为vb.net,但在转换为vb的行中出现错误:Me.ZBAPI_MEDDOC_CREATE_LINKCompleted
。
c#:
private void OnZBAPI_MEDDOC_CREATE_LINKOperationCompleted(object arg)
{
if ((this.ZBAPI_MEDDOC_CREATE_LINKCompleted != null))
{
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.ZBAPI_MEDDOC_CREATE_LINKCompleted(this, new ZBAPI_MEDDOC_CREATE_LINKCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
vb:
Private Sub OnZBAPI_MEDDOC_CREATE_LINKOperationCompleted(ByVal arg As Object)
If (Me.ZBAPI_MEDDOC_CREATE_LINKCompleted IsNot Nothing) Then
Dim invokeArgs As System.Web.Services.Protocols.InvokeCompletedEventArgs = DirectCast(arg, System.Web.Services.Protocols.InvokeCompletedEventArgs)
Me.ZBAPI_MEDDOC_CREATE_LINKCompleted(Me, New ZBAPI_MEDDOC_CREATE_LINKCompletedEventArgs(invokeArgs.Results, invokeArgs.[Error], invokeArgs.Cancelled, invokeArgs.UserState))
End If
End Sub
我应该如何转换c#行this.ZBAPI_MEDDOC_CREATE_LINKCompleted
?
您需要在VB.NET中使用RaiseEvent
,它也不需要null
检查是否附加了事件侦听器:
Private Sub OnZBAPI_MEDDOC_CREATE_LINKOperationCompleted(ByVal arg As Object)
Dim invokeArgs As System.Web.Services.Protocols.InvokeCompletedEventArgs = DirectCast(arg, System.Web.Services.Protocols.InvokeCompletedEventArgs)
RaiseEvent ZBAPI_MEDDOC_CREATE_LINKCompleted(Me, New ZBAPI_MEDDOC_CREATE_LINKCompletedEventArgs(invokeArgs.Results, invokeArgs.[Error], invokeArgs.Cancelled, invokeArgs.UserState))
End Sub