Siempre he asignado controladores de eventos como este, guiados por la autocompletación de Intellisense.Diferencias en la asignación de controladores de eventos C#?
RangeSelector.RangeChanged += new EventHandler(RangeSelector_RangeChanged);
Recientemente he notado que uno de mis colegas lo hace de esta manera.
RangeSelector.RangeChanged += RangeSelector_RangeChanged;
Ambos métodos son sintácticamente correctos, se compilan y se comportan como se esperaba.
¿Cuáles son las diferencias, ventajas o desventajas de estos métodos? ¿Dan como resultado el mismo código IL o hay alguna diferencia sutil que debo tener en cuenta?
Además, si cambia la firma caso, sólo se necesita cambiar el código en dos lugares, la declaración de evento, y el manejador en sí, pero no en donde asigne/desasigne el manejador. –
+1, Sin embargo, en cuanto a "debería ser preferido", eso es cuestionable. Si escribir + = seguido de presionar el botón de tabulación dos veces generó la sintaxis más reciente, estaría de acuerdo. Actualmente, la forma más rápida de agregar un controlador de eventos es generar la sintaxis anterior con la ayuda de los IDE. – AnthonyWJones
@Matthew Scharley: si utiliza el soporte de refactorización incorporado de Visual Studio, no tendrá que preocuparse por tales cosas. –