Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.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
如何将其翻译成C#_C#_Vb.net_Events - Fatal编程技术网

如何将其翻译成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

我仍在尝试将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 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;