2013-11-22 3 views
0

Visual Basic 2010에서 MIDI.NET을 사용하려고하는데 C#으로 작성되었습니다. 그래서 나는이 언어들이 서로에게 비슷한 수준이기 때문에 온라인 변환기를 사용하여 그것을 변환 할 수있는 팁을 얻었다. 내가 가진 하나의 문제는 C#에서 VB.net으로 변환 오류

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

가 나에게이 오류가 제공이

InputDevice.NoteOn += New InputDevice.NoteOnHandler(NoteOn) 

처럼 보이는 VB.NET로 변환이 줄을합니다.

  1. 'Public Event NoteOn (msg As NoteOnMessage)'은 이벤트이므로 직접 호출 할 수 없습니다. 'RaiseEvent'문을 사용하여 이벤트를 발생시킵니다. C : \ Users \ Den Houting \ AppData \ Local \ Temporary Projects \ MIDI \ Form1.vb 14 9 MIDI

  2. 오류 3 대리자 'Midi.InputDevice.NoteOnHandler'는 'AddressOf'표현식 또는 람다식이 유일한 것으로 필요합니다 생성자의 인수. C : \ 사용자 RaiseEvent NoteOn처럼 뭔가를하려고 할 때 덴 Houting \의 AppData \ 로컬 \ 임시 프로젝트 \ MIDI \ Form1.vb를 14 (82) MIDI가

이 NoteOn 하더군요 이벤트 아니다 \.

감사합니다.

답변

2

VB.NET의 적절한 구문 MSDN

AddHandler InputDevice.NoteOn, AddressOf NoteOn 

추가 이벤트를 등록하는 AddHandler를 이용한다.

+1

이 답변은 맞지만 C#에서는 연산자 + = 멀티 캐스트 대리자가 작동합니다. vb.net에 멀티 캐스트 대리자 예제를 게시하여 C# 기능과 일치하는 완전한 대답을 얻을 수 있습니까? 나는 스스로 할 수는 있지만 정확한 답을 반복하고 싶지는 않습니다. – jlvaquero

+0

@jlvaquero 나는 그것을 빨리 할 시간이 없으며 내 머리 꼭대기에서 그것을 할 수 없기 때문에 그것을 위해 간다. – Szymon

+1

감사합니다! 이게 도움이 됐어! –