Artigo Principal - As Novas Funcionalidades do C# 3.0
Uma expressão Lambda é uma função anónima que pode conter expressões e declarações, e pode ser usada para criar delegates ou expression tree types.
As expressões Lambda usam o operador =>. O lado esquerdo do operador lambda especifica os parâmetros de entrada e o lado direito especifica a expressão. Por exemplo, a expressão Lambda x=>x*x .
Passemos a um exemplo prático:
using System;
namespace ConsoleApplication
{
//Declare a Delegate
delegate int Del(int x);
class Program
{
static void Main(string[] args)
{
//Create the Lambda Expression
Del AoQuadrado = x => x*x;
Console.WriteLine(AoQuadrado(4));
Console.ReadKey();
}
}
}
Como podem ver pelo exemplo anterior associámos a expressão Lambda a um delegate type criado.
Outra forma de utilizar as Lamba Expressions, é através generic delegates, tornando a declaração ainda mais concisa, neste caso até inline.
using System;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
//Generic delegate and lambda expression
Func<int, int> AoQuadrado = x => x*x;
Console.WriteLine(AoQuadrado(4));
Console.ReadKey();
}
}
}
Na minha opinião, um dos sitios em que as Lambda Expressions dão imenso jeito, é para efectuar filtros em determinadas querys, pois são bastante intuitivas e compactas.
Vejam o exemplo seguinte onde queremos descobrir quantos números são maiores que 32.
using System;
using System.Linq;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
// Data source.
int[] scores = { 93, 90, 82, 75, 71, 50, 33, 21 };
const int value = 32;
// The call to Count forces iteration of the source
int highScoreCount = scores.Where(n => n > value).Count();
Console.WriteLine(”Existem {0} valores maiores que {1}”, highScoreCount, value);
Console.ReadKey();
}
}
}
Atenção que tem de utilizar o “System.Linq” para terem disponÃvel a função Where. É muito mais simples efectuar um filtro deste género, apenas numa linha de código. Algo que era muito mais complexo antes das lambda expressions.
Depois de nos habituarmos às Lambda Expressions, pouparemos bastante trabalho no desenvolvimento.
E vocês já utilizam lambda expressions?
Se gostaram deste artigo subscrevam a feed RSS do istomesmo, para ficarem actualizados sobre os últimos artigos.
» Subscrevam aqui a fedd RSS «
Obtenha mais informações sobre a fedd RSS aqui




Últimos Comentários