繁体   English   中英

将事件从C#转换为VB.Net ...如何?

[英]Convert event from C# to VB.Net…how to?

我必须将C#代码转换为VB.NET,但是我遇到了一些问题....您能帮我吗?

这是C#来源:

public static event ValueEnterEventHandler CallEvent;

public static void DispatchCompanyCall(string moduleName)
{
     if (IsReady && CallEvent != null)
           CallEvent(null, new ValueEnterEventArgs(moduleName, false));
}

我已经尝试过了:

Public Shared Event CallEvent As ValueEnterEventHandler

Public Shared Sub DispatchCompanyCall(moduleName As String)
    If IsReady AndAlso CallEvent IsNot Nothing Then
        CallEvent(Nothing, New ValueEnterEventArgs(moduleName, False))
    End If
End Sub

但我收到此错误消息:CallEvent是一个事件,不能直接调用,请使用RaiseEvent语句引发一个事件

我应该写什么? 你能帮助我吗? 谢谢。

使用VB.Net无需检查事件是否为null / Nothing ,您可以直接通过RaiseEvent关键字引发它们

Public Shared Sub DispatchCompanyCall(moduleName As String)
    If IsReady Then
        RaiseEvent CallEvent(Nothing, New ValueEnterEventArgs(moduleName, False))
    End If
End Sub

嗯...执行错误消息后,使用RaiseEvent吗?

Public Shared Event CallEvent As ValueEnterEventHandler

Public Shared Sub DispatchCompanyCall(moduleName As String)
    If IsReady AndAlso CallEvent IsNot Nothing Then
        RaiseEvent CallEvent(Nothing, New ValueEnterEventArgs(moduleName, False))
    End If
End Sub

嗯,执行错误消息中所说的。 有关示例,请参见RaiseEvent文档。

不知道您使用的是哪种IDE,但是如果需要在C#和VB.NET之间转换更多代码,反之亦然,则可以使用SharpDevelop(菜单工具>将代码转换为> C#| VB.NET(也可以Python,Ruby和Boo)

例如,您在C#中编写的代码:

public static event ValueEnterEventHandler CallEvent;

public static void DispatchCompanyCall(string moduleName)
{
    if (IsReady && CallEvent != null)
    CallEvent(null, new ValueEnterEventArgs(moduleName, false));
}

转换为VB.NET:

Public Shared Event CallEvent As ValueEnterEventHandler

Public Shared Sub DispatchCompanyCall(moduleName As String)
    If IsReady AndAlso CallEvent IsNot Nothing Then
        RaiseEvent CallEvent(Nothing, New ValueEnterEventArgs(moduleName, False))
    End If
End Sub

很有用。 试试看。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM