Artículos relacionados
Parte 1, Parte 2, Parte 3.1, Parte 3.2, Parte 3.3
En esta oportunidad hablaremos sobre las Expresiones Lambda en C# y VB.
Podemos decir que las expresiones lamba son le evolución natural de los métodos anónimos incluidos en C# 2.0. Esto nos permite utilizar una sintaxis mas compacta al momento de escribir nuestro código. Veamos un par definiciones del sitio de Microsoft:
"Una expresión lambda es una función anónima que puede contener expresiones e instrucciones y se puede utilizar para crear delegados o tipos de árboles de expresión"
"Una expresión lambda es una función sin nombre que calcula y devuelve un solo valor. Se pueden utilizar las expresiones lambda dondequiera que un tipo de delegado sea válido"
Creo que la forma mas sencilla de entender este concepto es mediante un ejemplo que muestre la evolución de los cambios en la sintaxis de los lenguajes hasta llegar a las expresiones lambda.
C#
VB
En el código anterior podemos ver la definición de un delegado que recibe un tipo Int, Integer y retorna un tipo bool, Boolean, esto servirá para poder sustituir cualquier función que tenga esa firma en el procedimiento Mostrar Números. Y definimos dos funciones una que indica si un numero es par y la otra si es mayor a 5. Ahora veamos como se invocaría dicho método usando los delegados. (C# 1.0 y VB 7.0)
C#
VB
Recientemente se introdujo el concepto de funciones anónimas, que permiten eliminar la necesidad de definir el delegado especifico y en su lugar usar un delegado genérico. ( esto se puede aplicar en ambos lenguajes). Ejemplo:
C#
VB
En C# 2.0 se introdujo el concepto de métodos anónimos como un medio de escribir bloques de instrucciones insertados sin nombre que se pueden ejecutar en una invocación de delegado (no se necesita definir previamente el delegado). Ejemplo:
C#
Finalmente esto se puede escribir utilizando expresiones lambda de la siguiente forma:
C#
VB
Como pueden ver las expresiónes lamda permiten una sintaxis mas compacta y pueden contener instrucciones como en el ejemplo anterior o expresiones, de aquí surge el concepto de arboles de expresión que tocaremos en la siguiente entrega y veremos como se aplican todos los conceptos que hemos visto en las consultas LINQ.
Pueden descargar el código fuente aquí.
Hasta la proxima.