Tópicos importantes de C#

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

C#
Rodar código →
Program.cs
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);
    }
}
Resultado da execução
42

Pratique com o depurador

Coloque um breakpoint em uma atribuição ou condição importante, clique em Debug e veja os valores das variáveis locais antes de passar para a próxima linha.

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