views:

113

answers:

1

I'm in the process of transplanting a unit test written in vb.net to the larger project written in c#. However, this little ditty has me looking for help.

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

What is the best way to convert this event? Also, is this a good instance to use EventHandler<> to consolidate my arguments into a structure?

+5  A: 

In this case you're actually demonstrating an event handler vs. an event. C# does not have the Handles clause notion that VB.Net has. Instead you must manually assign an event handler to an event like so.

myObject.DataChange += this.object_DataChange;

And correspondingly, when you're done with the event you should remove the handler like so

myObject.DataChange -= this.object_DataChange;

The actual event handler can be translated as follows

void object_DataChange(
  int TransactionID,
  int NumItems,
  ref System.Array ClientHandles,
  ref System.Array ItemValues,
  ref System.Array Quantities,
  ref System.Array TimeStamps) {
  ...
}
JaredPar