¿Cuál es la diferencia entre estas dos sintaxis para conectar un controlador de eventos? [duplicar]

Posible duplicado:
¿Existe una diferencia real en las 2 formas diferentes de adjuntar controladores de eventos en C #?

He estado viendo una gran cantidad de código que se parece a esto:

foo.Drop += new DragEventHandler(fooHandler);

Pero en el pasado, siempre hice esto:

foo.Drop += fooHandler;

¿Existe alguna diferencia entre estas dos sintaxis? Si es así, ¿hay alguna ventaja en hacerlo a largo plazo?

preguntado el 10 de mayo de 11 a las 13:05

4 Respuestas

El segundo es la abreviatura del primero; se compilarán en IL idéntico.

Sin embargo, la segunda sintaxis es nueva en C # 2.0; C # 1 solo admite el primero.

contestado el 10 de mayo de 11 a las 17:05

Ambos resultarán en el mismo IL.

Entonces, en respuesta a su pregunta, no, no hay ningún beneficio de usar la versión más larga.

contestado el 10 de mayo de 11 a las 18:05

Ha vinculado a una página de desambiguación que sugiere que MSIL es el "antiguo acrónimo" de lo que ahora se llama CIL. - Cody Grey ♦

@Cody Gray actualizado al enlace más directo - Nathan

Supongo que proviene del esfuerzo por enfatizar que la plataforma no es completamente propietaria. Microsoft ha sido algo alentador en varias ocasiones para esfuerzos como el Proyecto Mono. Todos los que conozco lo llaman "IL", incluido yo mismo. Evita que el marketing interfiera con la comprensión. ;-) - Cody Grey ♦

Buen lugar, gracias. Respuesta actualizada para llamarlo "IL";) - Nathan

No hay diferencia, ya que .Net 2 y usted puede usar lo que se llama Conversión de grupo de métodos que le permite registrar el nombre del método directamente en el evento sin hacer un objeto delegado

contestado el 10 de mayo de 11 a las 17:05

Son iguales, pero en el segundo ejemplo, el compilador usa la conversión de grupo de métodos para inferir el tipo de delegado por usted. Azúcar sintáctica...

contestado el 10 de mayo de 11 a las 17:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.