Question

Je suis en train de transplanter un test unitaire écrit en VB.NET au projet plus écrit en C #. Cependant, cette petite chansonnette m'a chercher de l'aide:

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

Quelle est la meilleure façon de convertir cet événement? Aussi, est-ce un bon exemple d'utiliser EventHandler<> pour consolider mes arguments dans une structure?

Était-ce utile?

La solution

Dans ce cas, vous démontrez en fait un gestionnaire d'événements par rapport à un événement. C # ne pas la notion de clause Handles que VB.NET a. Au lieu de cela, vous devez attribuer manuellement un gestionnaire d'événements à un événement comme ceci:

myObject.DataChange += this.object_DataChange;

Et en conséquence, lorsque vous avez terminé avec l'événement, vous devez supprimer le gestionnaire comme ceci:

myObject.DataChange -= this.object_DataChange;

Le gestionnaire d'événement réel peut être traduit comme suit.

void object_DataChange(
    int TransactionID,
    int NumItems,
    ref System.Array ClientHandles,
    ref System.Array ItemValues,
    ref System.Array Quantities,
    ref System.Array TimeStamps) {
    ...
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top