Toma el siguiente código:
private void anEvent(object sender, EventArgs e) {
//some code
}
¿Cuál es la diferencia entre los siguientes?
[object].[event] += anEvent;
//and
[object].[event] += new EventHandler(anEvent);
[ACTUALIZAR]
Aparentemente, no hay diferencia entre los dos ... el primero es solo azúcar sintáctico del segundo.
c#
delegates
event-handling
Andreas Grech
fuente
fuente
Respuestas:
No hay diferencia. En su primer ejemplo, el compilador inferirá automáticamente el delegado que le gustaría instanciar. En el segundo ejemplo, define explícitamente el delegado.
La inferencia delegada se agregó en C # 2.0. Entonces, para los proyectos de C # 1.0, el segundo ejemplo fue su única opción. Para proyectos 2.0, el primer ejemplo que usa inferencia es lo que preferiría usar y ver en el código base, ya que es más conciso.
fuente
[object].[event] += anEvent;
es solo azúcar sintáctico para ...
[object].[event] += new EventHandler(anEvent);
fuente
No creo que haya diferencia. El compilador transforma el primero en el segundo.
fuente