C#代码与VB.net等效

时间:2011-08-01 11:12:20

标签: c# vb.net

对于VB.net代码,遵循C#代码的等价物。

public void RaiseTotalTimeEvent(TotalTimeEventArgs e)
        {
            EventHandler<TotalTimeEventArgs> temp = TotalTimeEvent;
            if (temp != null)
            {
                temp(this, e);
            }
        }

修改 谢谢你的回答。

但所有答案看起来都是使用现有的一些CODE转换器进行转换的。 我尝试了TelerikDeveloperFusion和其他人。所有这些工具都生成如下所示的相同代码,但这些都不起作用。 转换代码。

Public Sub RaiseTotalTimeEvent(e As TotalTimeEventArgs)
    Dim temp As EventHandler(Of TotalTimeEventArgs) = TotalTimeEvent
    RaiseEvent temp(Me, e)
End Sub

编译器报告出现此错误:

  

错误8'公共事件CountEvent(发件人为对象,e为   CountEventArgs)'是一个事件,不能直接调用。用一个   “RaiseEvent”发表声明的声明。

4 个答案:

答案 0 :(得分:3)

您应该避免自动将代码从一种语言转换为另一种语言。相反,您应该学会理解并重写代码,以您的首选语言解决问题。

但是有翻译。 http://www.developerfusion.com/tools/convert/csharp-to-vb/

答案 1 :(得分:1)

我认为它会是这样的。

Public Sub RaiseTotalTimeEvent(e As TotalTimeEventArgs)
    Dim temp As EventHandler(Of TotalTimeEventArgs) = TotalTimeEvent
    RaiseEvent temp(Me, e)
End Sub

答案 2 :(得分:0)

您可以通过使用一些在线C#到VB转换工具轻松完成它。无论如何,下面是等效的VB代码。

Public Sub RaiseTotalTimeEvent(e As TotalTimeEventArgs)
    Dim temp As EventHandler(Of TotalTimeEventArgs) = TotalTimeEvent
    RaiseEvent temp(Me, e)
End Sub

答案 3 :(得分:0)

在这里查看自动转换器:http://www.developerfusion.com/tools/convert/csharp-to-vb/

Public Sub RaiseTotalTimeEvent(e As TotalTimeEventArgs)
    Dim temp As EventHandler(Of TotalTimeEventArgs) = TotalTimeEvent
    RaiseEvent temp(Me, e)
End Sub

错过了if,但这应该很简单。