如何将其翻译成C#
我仍在尝试将VB中的东西翻译成C语言,而我的最新问题涉及事件。在我的原始事件文件中如何将其翻译成C#,c#,vb.net,events,C#,Vb.net,Events,我仍在尝试将VB中的东西翻译成C语言,而我的最新问题涉及事件。在我的原始事件文件中 Public Event CommEvent As CommEventHandler Public Delegate Sub CommEventHandler(ByVal source As Rs232, ByVal Mask As EventMasks) 然后打电话到上面, Protected Sub OnCommEventReceived(ByVal source As Rs232, ByVal mask
Public Event CommEvent As CommEventHandler
Public Delegate Sub CommEventHandler(ByVal source As Rs232, ByVal Mask As EventMasks)
然后打电话到上面,
Protected Sub OnCommEventReceived(ByVal source As Rs232, ByVal mask As EventMasks)
Dim del As CommEventHandler = Me.CommEventEvent
If (Not del Is Nothing) Then
Dim SafeInvoker As ISynchronizeInvoke = Nothing
Try
SafeInvoker = DirectCast(del.Target, ISynchronizeInvoke)
Catch
End Try
Try
If (Not SafeInvoker Is Nothing) Then
SafeInvoker.Invoke(del, New Object() {source, mask})
Else
del.Invoke(source, mask)
End If
Catch
'!!! TO-DO
End Try
End If
End Sub
现在如果我在上面使用VB到C#的转换器,我会得到很好的结果
public event CommEventHandler CommEvent;
public delegate void CommEventHandler(Rs232 source, EventMasks Mask);
以及
我的问题是CommEvent事件。在C#文件中没有定义,但它在原始VB文件中,而且,代码翻译器非常乐意地翻译它
请问这是从哪里来的?我如何才能让它在C文件中工作?在我看来,这只是指
CommEvent
:
CommEventHandler del = this.CommEvent;
我不知道VB.NET为什么让您将其称为
CommEventEvent
。它可能是一种语言快捷方式,比如如何在自定义属性的末尾省略单词属性等。不,就是这样,VB程序引用了Me.CommEventEvent。根本没有声明。我以前用这个.CommEvent替换了所有的del,看起来还可以,但是看起来很奇怪,我不知道我做的事情是否正确。
CommEventHandler del = this.CommEvent;