2011-06-17 8 views
10

Me preguntaba hoy si hay alguna razón para preferir el uso de delegado {} en lugar de () => {}, en los casos en que es necesario una función vacía.lo cual es preferible: delegado {} o() => {}

¿Conoces alguna razón para preferir una sobre otra?

+8

ve por el que encuentres más legible. Prefiero lo último, pero esa es solo mi preferencia subjetiva – jalf

+3

¿Por qué la gente vota para cerrar esto? Esta es una pregunta perfectamente válida. En lo que respecta al PO, puede haber una diferencia en que se le pase por alto. ¡La pregunta que hace la policía otra vez! –

+0

Me gustaría recordarles a todos que estamos aquí para ayudar a las personas. No todas las preguntas deben ser exhaustivas y técnicas. –

Respuesta

7

No son lo mismo.

Desde delegate {} no suministra una lista de argumentos, que can be converted a un delegado que devuelve void y toma cualquier número de argumentos (excepto ref y out parámetros).

Esto no es lo mismo que () => {}, que se declara explícitamente como no tomar ningún argumento.

+1

No sabía que podía escribir: Acción f = delegar {}; Gracias por la explicación :) –

2

Creo que están compilados en el mismo código (si el lambda se compila en un delegado no es una expresión, que sería si se utilizara donde se usaría un delegado).

Mi preferencia es para lambda, principalmente porque tiene menos caracteres y i no creo que sea menos legible.

Cuestiones relacionadas