ExpertiDict

C# · Intermediário · Inglês · Técnico

pattern matching

/ˈpætɚn ˈmætʃɪŋ/substantivo

Conjunto de recursos para testar a forma de um valor, por tipo, constante, propriedades ou posição, e extrair partes dele, usando is, switch e expressões.

Onde usar

Aparece em code review quando um monte de ifs e casts pode virar uma switch expression legível. Também é a base para tratar hierarquias com checagem de exaustividade pelo compilador.

Em código

string Desc(object? o) => o switch {
  int n when n < 0 => "negativo",
  int => "inteiro",
  string { Length: 0 } => "vazio",
  null => "nulo",
  _ => "outro"
};
Console.WriteLine(Desc(-5));   // negativo

Exemplos

Pattern matching made that type check much shorter.

O pattern matching deixou essa checagem de tipo bem mais curta.

Put the specific pattern before the general one.

Coloque o padrão específico antes do geral.

Cuidado

Não é regex: padrões operam sobre tipos e valores do .NET, e a ordem dos casos importa porque o primeiro que casa vence.

Sinônimos

casamento de padrões

Veja também

Todos os termos de C#