he visto un par de menciones de este idioma (incluyendo on SO):¿Hay algún inconveniente en agregar un delegado vacío anónimo en la declaración de evento?
// Deliberately empty subscriber
public event EventHandler AskQuestion = delegate {};
La ventaja es clara - que evita la necesidad de comprobar la nula antes de levantar el evento.
Sin embargo, estoy dispuesto a entender si hay inconvenientes. Por ejemplo, ¿es algo que tiene un uso generalizado y es lo suficientemente transparente como para no causar dolores de cabeza por mantenimiento? ¿Hay algún golpe de rendimiento apreciable de la llamada al suscriptor del evento vacío?
Si el evento tuviera exactamente un suscriptor (un caso * muy * común), el manejador simulado lo hará tener dos. Los eventos con un solo controlador se manejan * mucho * más eficientemente que aquellos con dos. – supercat