Tópicos importantes de C#

Correspondência de padrões (pattern matching) em C#

Nesta lição, você vai usar uma expressão switch com padrões para verificar o tipo e o valor dos dados de forma limpa e segura.

Introdução

A correspondência de padrões (pattern matching) permite verificar de que tipo é um valor, se ele atende a uma condição e já extrair os dados para usar, tudo em uma única expressão. Ela substitui a verificação de tipo seguida de conversão manual, que é longa e fácil de errar.

A expressão switch da função Describe testa cada padrão em ordem: null para dados ausentes, int number when number > 0 para inteiros positivos, string { Length: > 0 } para strings não vazias e _ para todos os outros casos. Com o valor 12, o padrão de inteiro positivo combina e o resultado é positive 12.

Veja como funciona

Mova o controle para mudar o dia. O programa pula direto para o case correspondente, ou para o default quando nenhum combina.

Exemplo de C# executável

C#
Rodar código →
Program.cs
using System;

class Program
{
    static string Describe(object? value) => value switch
    {
        null => "missing",
        int number when number > 0 => $"positive {number}",
        string { Length: > 0 } text => $"text: {text}",
        _ => "other"
    };

    static void Main() => Console.WriteLine(Describe(12));
}
Resultado da execução
positive 12

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