Pregunta

Estoy en el proceso de trasplantar una prueba de unidad escrita en VB.NET para el proyecto más amplio escrito en C #. Sin embargo, esta pequeña canción me ha buscando ayuda:

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

¿Cuál es la mejor manera de convertir este evento? Además, es este un buen ejemplo para usar EventHandler<> para consolidar mis argumentos en una estructura?

¿Fue útil?

Solución

En este caso, en realidad está demostrando un controlador de eventos frente a un evento. C # no tiene la noción de que la cláusula Handles VB.NET tiene. En su lugar debe asignar manualmente un controlador de eventos para un evento de este modo:

myObject.DataChange += this.object_DataChange;

Y en consecuencia, cuando haya terminado con el evento debe quitar el controlador de este modo:

myObject.DataChange -= this.object_DataChange;

El controlador de eventos real puede ser traducido como sigue.

void object_DataChange(
    int TransactionID,
    int NumItems,
    ref System.Array ClientHandles,
    ref System.Array ItemValues,
    ref System.Array Quantities,
    ref System.Array TimeStamps) {
    ...
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top