¿Cuál es la diferencia entre los Eventos con el Delegado de los Manipuladores y los que no?

StackOverflow https://stackoverflow.com/questions/119160

  •  02-07-2019
  •  | 
  •  

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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top