将事件声明从C#转换为Visual Basic 2010

时间:2015-02-06 18:42:56

标签: vb.net visual-studio-2010 c#-to-vb.net

我目前正在将一个类从C#转换为Visual Basic 2010。

大多数部件都运行良好,直到我来到EventHandlers。我还没有能够将以下代码行转换为Visual Basic,既不是我自己也不是使用转换器:

public event EventHandler<StringEventArgs> ServerMessage = delegate { };

转换器&#39;代码只给我错误&#34;期望结束语&#34;:

Public Event ServerMessage As EventHandler(Of StringEventArgs) = Sub() 

End Sub

那么,delegate { }部分是否需要转换为Visual Basic代码?

如果是这样,我该如何正确转换?

如果没有,仅使用以下内容就足够了:

Public Event ServerMessage As EventHandler(Of StringEventArgs)

1 个答案:

答案 0 :(得分:3)

VB.NET&#39; RaiseEvent检查一个事件在实际引发事件之前是否没有订阅者(它不会抛出异常),所以你的

Public Event ServerMessage As EventHandler(Of StringEventArgs)

应该有用。

这是在C#中将委托设置为delegate{ };的目的,以避免在引发事件时检查null。由于事件总是为其分配一个空方法,因此不会抛出异常。

请参阅:https://stackoverflow.com/a/16712799/864414