Frage

Ich bin im Begriff, einen Unit-Tests von Umpflanzen in VB.NET auf das größere Projekt in C # geschrieben. Doch dieses kleine Liedchen hat Frag mich um Hilfe:

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

Was ist der beste Weg, um dieses Ereignis zu konvertieren? Auch dies ist ein gutes Beispiel zu verwenden EventHandler<> auf meine Argumente in eine Struktur zu konsolidieren?

War es hilfreich?

Lösung

In diesem Fall sind Sie tatsächlich einen Event-Handler gegen ein Ereignis zu demonstrieren. C # nicht über die Handles Klausel Vorstellung, dass VB.NET hat. Stattdessen müssen Sie manuell einen Ereignishandler zu einem Ereignis zuordnen wie folgt:

myObject.DataChange += this.object_DataChange;

Und entsprechend, wenn Sie mit dem Ereignis fertig sind, sollten Sie den Handler entfernen wie folgt:

myObject.DataChange -= this.object_DataChange;

Die eigentlichen Event-Handler übersetzt werden können wie folgt.

void object_DataChange(
    int TransactionID,
    int NumItems,
    ref System.Array ClientHandles,
    ref System.Array ItemValues,
    ref System.Array Quantities,
    ref System.Array TimeStamps) {
    ...
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top