No es totalmente obvio para mí lo que está sucediendo en esta situación.¿Alguien puede explicar lo que está sucediendo detrás de escena?
Espero que se activen ambas funciones.
O bien la clase EventHander está almacenando la lista de funciones para disparar como una matriz - y la matriz se copia a una nueva cada vez que se agrega/elimina algo - o cuando se realiza la asignación, todo se copia a una nueva "colección", y no solo una referencia.
Alguien por favor me ilumine: D
He aquí un pequeño script LINQPad:
public class Moop
{
public EventHandler myEvent;
}
void Main()
{
var moo = new Moop();
moo.myEvent += (o, sender) => { "Added to Moop #1".Dump(); };
var moo2 = new Moop();
//Copy the reference, I assume?
moo2.myEvent = moo.myEvent;
moo2.myEvent += (o, sender) => { "Added to Moop #2".Dump(); };
//Fire the event on #1
moo.myEvent(null, null);
}
He aquí el poder de la sobrecarga del operador y los males que trae. – CodingBarfield