Convert VB.NET Ereignis mit mehreren Ereignisargumenten zu C #
-
21-09-2019 - |
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?
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) {
...
}