将C#转换为Vb Net,使用';RaiseEvent';提出事件的声明

将C#转换为Vb Net,使用';RaiseEvent';提出事件的声明,c#,delegates,invoke,C#,Delegates,Invoke,我将一个c#类转换为vb net,但有些事件无法发现这些是委托声明: Public Delegate Sub IndentChangedEventHandler(NewValue As Integer) Public Delegate Sub MultiIndentChangedEventHandler(LeftIndent As Integer, HangIndent As Integer) Public Delegate Sub MarginChangedEventH

我将一个c#类转换为vb net,但有些事件无法发现这些是委托声明:

    Public Delegate Sub IndentChangedEventHandler(NewValue As Integer)
    Public Delegate Sub MultiIndentChangedEventHandler(LeftIndent As Integer, HangIndent As Integer)
    Public Delegate Sub MarginChangedEventHandler(NewValue As Integer)
    Public Delegate Sub TabChangedEventHandler(args As TabEventArgs)

    Public Event LeftHangingIndentChanging As IndentChangedEventHandler
    Public Event LeftIndentChanging As IndentChangedEventHandler
    Public Event RightIndentChanging As IndentChangedEventHandler
    Public Event BothLeftIndentsChanged As MultiIndentChangedEventHandler

    Public Event LeftMarginChanging As MarginChangedEventHandler
    Public Event RightMarginChanging As MarginChangedEventHandler

    Public Event TabAdded As TabChangedEventHandler
    Public Event TabRemoved As TabChangedEventHandler
    Public Event TabChanged As TabChangedEventHandler
'这是在vb net上转换的函数

Private Sub AddTab(pos As Single)
            Dim rect As New RectangleF(pos, 10.0F, 8.0F, 8.0F)
            tabs.Add(rect)
            If TabAdded IsNot Nothing Then
                TabAdded.Invoke(CreateTabArgs(pos))
            End If
        End Sub
关于c#的句子是


给代表打电话的正确方式是什么?

我认为您应该使用
的地址。方法到委托的转换在C#中是隐式的。在VB.Net中,它是显式的,我们使用的是
的地址。忘了这件事吧

欲了解更多信息,请阅读此处

事件在vb.net中有三个访问器:添加、删除和提升。C#不支持raise访问器,因此必须显式测试null。这在vb.net中是不必要的,也是不允许的,只需直接使用RaiseEvent语句而不进行任何测试:

Private Sub AddTab(ByVal pos As Single)
    Dim rect As New RectangleF(pos, 10.0F, 8.0F, 8.0F)
    tabs.Add(rect)
    RaiseEvent TabAdded(CreateTabArgs(pos))
End Sub
if (TabAdded != null)
            TabAdded.Invoke(CreateTabArgs(pos));
Private Sub AddTab(ByVal pos As Single)
    Dim rect As New RectangleF(pos, 10.0F, 8.0F, 8.0F)
    tabs.Add(rect)
    RaiseEvent TabAdded(CreateTabArgs(pos))
End Sub