¿Cuál es la diferencia entre los Eventos con el Delegado de los Manipuladores y los que no?
Pregunta
¿Cuál es la diferencia entre esto:
this.btnOk.Click += new System.EventHandler(this.btnOK_Click);
y esto?
this.btnOk.Click += this.btnOK_Click;
Ambos trabajan.El primero es lo que Visual Studio por defecto cuando el uso de los fragmentos.Pero parece que solo los anuncios extra verborrea, o me estoy perdiendo algo?
Solución
Ninguna diferencia.Omitiendo el delegado de la creación de instancias es sólo la sintaxis de dulces;el compilador de C# generará el delegado de la creación de instancias para usted bajo el capó.
Otros consejos
En C# 3.0 y posteriores esta no es la diferencia.Antes de C# 3.0 EventHandlers fueron requeridos debido a las limitaciones del compilador, pero con el advenimiento de C# 3.0, la segunda forma es preferido a menos que desee ser muy explícito.
Creo que C# desde 3.0 implícitamente ha añadido el delegado de controlador.Sin embargo, puede ayudar a ser más explícitos, especialmente cuando hay varios posibles tipos de delegado.
"+= Delegate_Name" es una sintaxis de azúcar.Compilador creará un nuevo contenedor para usted.