저는 VB에서 C#으로 물건을 번역하려고합니다. 그리고 최근의 문제는 이벤트와 관련이 있습니다. 나는 위의 C#을 계산기에 VB를 사용하는 경우 내가 가지고있는 원래의 이벤트 파일에서 이것을 C로 변환하는 방법
Public Event CommEvent As CommEventHandler
Public Delegate Sub CommEventHandler(ByVal source As Rs232, ByVal Mask As EventMasks)
그런 다음, 나는 아주 능숙하게 얻을 이제, 위에서
Protected Sub OnCommEventReceived(ByVal source As Rs232, ByVal mask As EventMasks)
Dim del As CommEventHandler = Me.CommEventEvent
If (Not del Is Nothing) Then
Dim SafeInvoker As ISynchronizeInvoke = Nothing
Try
SafeInvoker = DirectCast(del.Target, ISynchronizeInvoke)
Catch
End Try
Try
If (Not SafeInvoker Is Nothing) Then
SafeInvoker.Invoke(del, New Object() {source, mask})
Else
del.Invoke(source, mask)
End If
Catch
'!!! TO-DO
End Try
End If
End Sub
전화
public event CommEventHandler CommEvent;
public delegate void CommEventHandler(Rs232 source, EventMasks Mask);
그리고,
protected void OnCommEventReceived(Rs232 source, EventMasks mask)
{
CommEventHandler del = this.CommEventEvent;
if (((del != null))) {
ISynchronizeInvoke SafeInvoker = null;
try {
SafeInvoker = (ISynchronizeInvoke)del.Target;
} catch {
}
try {
if (((SafeInvoker != null))) {
SafeInvoker.Invoke(del, new object[] { source, mask });
} else {
del.Invoke(source, mask);
}
} catch {
//!!! TO-DO
}
}
}
내 proble m은 CommEventEvent입니다. C# 파일에는 이것에 대한 정의가 없지만 원래의 VB 파일에 있으며 코드 번역자가이를 기쁜 마음으로 변환합니다.
이 부분은 어디에서 발생 했습니까? C# 파일에서 어떻게 작동합니까? 그것은이 같은 날에 보이는
아니야, VB 프로그램은 Me.CommEventEvent를 참조합니다. 선언은 전혀 없습니다. –