Tengo un evento en un bucle. Estoy tratando de evitar que se agregue el mismo método a un evento más de una vez. Implementé los accesos add
y remove
.-evento- solo puede aparecer en el lado izquierdo de + = o - =
Sin embargo, me sale un error que indica que:
ItemsProcessed can only appear on the left hand side of += or -=
Cuando intento llamar, incluso dentro de la misma clase.
ItemsProcessed(this, new EventArgs()); // Produces error
public event EventHandler ItemsProcessed
{
add
{
ItemsProcessed -= value;
ItemsProcessed += value;
}
remove
{
ItemsProcessed -= value;
}
}
Además, parece que ha creado un bucle infinito al acceder a 'ItemsProcessed' dentro de las funciones' ItemsProcessed'. – Gabe
Como referencia, el truco de invocación 'EventName (args)' solo se aplica a los * eventos tipo campo *, donde algunas operaciones se resuelven implícitamente al * campo * (no el evento) dentro de la clase. Tengo que decir "algo", porque la lista exacta cambió entre C# 3 y C# 4. –