C# · Intermediário · Inglês · Técnico
pattern matching
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)); // negativoExemplos
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