Em C#, expressões lambda são utilizadas para declarar funções anônimas que podem e declarações ou uma expressão
como retorno em seu corpo.
Expressões lambda possui as formas abaixo e utilizam o operador (=>) para identificar sua declaração:
Sintaxe
() => { declaracoes }
(lista_parametros) => expressao_retorno;
(lista_parametros) => { declaracoes }
O uso de () para delimitar os parâmetros de uma expressão lambda é opcional. O uso de {} pode
ser omitido caso seu corpo contenha apenas uma expressão aritmética ou lógica, por exemplo, como retorno.
Lambda pode ser usadas em conjunto com Func, Action e Predicate. Essas assuntos serão
vistos em mais adiante.
Sintaxe
Action<T> nome_action = (T parametro) => expressao;
Func<T> nome_func = (T parametro) => expressao;
Onde
T: Tipo de dado do parâmetro
expressao: Expressão de retorno
Para invocarmos uma expressão lambda, utilizamos seu nome no e seus repectivos argumentos passados:
Sintaxe
nome_action(lista_argumentos);
tipo_retorno nome_variavel = nome_action(lista_argumentos);
No exemplo 1 abaixo, uma expressão Lambda foi declarada utilizando Func. Um expressão aritmética
de soma foi declarada como retorno.
Exemplo 1
using System;
public class Program
{
public static void Main()
{
//<int, int, int> - parâmetro, parâmetro, retorno
Func<int,int,int> soma = (x,y) => (x + y);
int ret = soma(10,10);
Console.WriteLine();
}
}
Saída
20
110
As sintaxes acima são apenas ilustrativas para o uso de Action e Func com apenas um parâmetro.