我正在尝试使用C#编写的Visual Basic 2010中的MIDI.NET。因此,我获得了使用在线转换器进行转换的提示,因为这些语言彼此之间是很相似的。
我有一个问题是这条线

inputDevice.NoteOn += new InputDevice.NoteOnHandler(NoteOn);

转换为vb.net看起来像这样
InputDevice.NoteOn += New InputDevice.NoteOnHandler(NoteOn)

这给了我两个错误。
  • “公共(public)事件NoteOn(msg作为NoteOnMessage)”是一个事件,不能直接调用。使用“RaiseEvent”语句引发事件。 C:\ Users \ Den Houting \ AppData \ Local \ Temporary Projects \ MIDI \ Form1.vb 14 9 MIDI
  • 错误3委托(delegate)'Midi.InputDevice.NoteOnHandler'要求使用'AddressOf'表达式或lambda表达式作为其构造函数的唯一参数。 C:\ Users \ Den Houting \ AppData \ Local \ Temporary Projects \ MIDI \ Form1.vb 14 82 MIDI

  • 尝试执行类似RaiseEvent NoteOn的操作时,它告诉我NoteOn不是事件。

    谢谢。

    最佳答案

    VB.NET中的正确语法使用AddHandler注册事件

    AddHandler InputDevice.NoteOn, AddressOf NoteOn
    

    有关MSDN的更多信息。

    关于c# - C#到VB.net转换错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20142964/

    10-15 01:04