Delegates e expressões lambda em C#
Nesta lição, você vai passar uma função como parâmetro para outro método com o delegate Func e uma expressão lambda.
Introdução
Um delegate é um tipo que representa um método e permite passar um comportamento como se fosse um valor. Uma expressão lambda é uma forma curta de escrever uma função no próprio lugar, como (a, b) => a * b. Juntando os dois, você escreve métodos flexíveis que recebem de fora a forma de processar os dados.
O tipo Func<int, int, int> representa uma função que recebe dois inteiros e retorna um inteiro. O método Apply não sabe de antemão qual é o cálculo, só chama operation(left, right). Ao receber a lambda (left, right) => left * right, Apply faz a multiplicação e retorna 42.
Exemplo de C# executável
using System;
class Program
{
static int Apply(int left, int right, Func<int, int, int> operation)
=> operation(left, right);
static void Main()
{
int result = Apply(6, 7, (left, right) => left * right);
Console.WriteLine(result);
}
}
42Pratique com o depurador
Pratique com um desafio
Use o conteúdo desta lição para resolver um problema real. Cada desafio roda no navegador, com testes instantâneos e uma revisão por IA.
Todos os desafios