[英]How to translate this into 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
现在,如果我在上面使用从VB到C#的转换器,我会很满意,
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
}
}
}
我的问题是CommEventEvent。 C#文件中没有此定义,但原始VB文件中有此定义,此外,代码翻译器很高兴地对其进行了翻译。
请问这是从哪里来的,如何在C#文件中运行它?
在我看来,这仅仅是指CommEvent
:
CommEventHandler del = this.CommEvent;
我不知道为什么VB.NET允许您将其称为CommEventEvent
。 它可能是这些语言的快捷方式之一,例如您如何在自定义属性的末尾省略Attribute
一词。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.