ExpertiDict

C# · Essencial · Inglês · Técnico

lambda expression

/ˈlæmdə ɪkˈsprɛʃən/substantivo

Função anônima escrita com =>, atribuível a delegates como Func e Action ou a Expression<T>. Pode capturar variáveis do escopo e deixa callbacks e consultas LINQ concisos.

Onde usar

Aparece em Where, Select, OrderBy e em callbacks de eventos. Ao capturar uma variável, a lambda aloca um closure; marcar a lambda como static impede capturas acidentais em caminhos quentes.

Em código

Func<int, int> dobro = x => x * 2;
Action<string> f = s => Console.WriteLine(s);
int fator = 3;
Func<int, int> mult = x => x * fator;
Console.WriteLine(dobro(4) + mult(2)); // 14

Exemplos

Pass a lambda expression to Where.

Passe uma lambda para o Where.

That lambda captures a local variable.

Essa lambda captura uma variável local.

Cuidado

Não confunda o => da lambda com o => de membros com corpo de expressão: a sintaxe é a mesma, mas o significado é diferente.

Sinônimos

lambda, função anônima

Origem

Do cálculo lambda, formalismo matemático de funções criado por Alonzo Church.

Veja também

Todos os termos de C#