我正在将用VB.NET编写的单元测试移植到用C#编写的大型项目中。然而,这个小曲子让我寻求帮助:
Public Sub object_DataChange(ByVal TransactionID As Integer, _
ByVal NumItems As Integer, _
ByRef ClientHandles As System.Array, _
ByRef ItemValues As System.Array, _
ByRef Qualities As System.Array, _
ByRef TimeStamps As System.Array) _
Handles myObject.DataChange
'' Does event code here
End Sub
转换此活动的最佳方式是什么?另外,这是一个使用EventHandler<>
将我的参数合并到结构中的好例子吗?
答案 0 :(得分:5)
在这种情况下,您实际上是在演示事件处理程序与事件。 C#没有VB.NET具有的Handles
子句概念。相反,您必须手动为这样的事件分配事件处理程序:
myObject.DataChange += this.object_DataChange;
相应地,当你完成事件后,你应该删除处理程序:
myObject.DataChange -= this.object_DataChange;
实际的事件处理程序可以翻译如下。
void object_DataChange(
int TransactionID,
int NumItems,
ref System.Array ClientHandles,
ref System.Array ItemValues,
ref System.Array Quantities,
ref System.Array TimeStamps) {
...
}