No C#, o Pattern Matching pode ser utilizado com switch expressions, is expressions, e padrões combinados, oferecendo uma sintaxe mais concisa e poderosa para comparar e extrair informações de objetos.
Tipos de Pattern Matching
-
Padrões de Tipo (Type Patterns)
O padrão de tipo permite verificar se uma variável é de um tipo específico e, ao mesmo tempo, fazer o cast dessa variável para o tipo desejado.
Exemplo:if (obj is string s) { Console.WriteLine($"A string é: {s}"); }
-
Padrões de Valor (Constant Patterns)
Você pode comparar diretamente os valores de variáveis. Isso é útil para comparar valores primitivos e constantes.
Exemplo:int x = 5; if (x is 5) { Console.WriteLine("O valor é 5"); }
-
Padrões de Padrão de Lista (Positional Patterns)
Para tipos como tuplas ou objetos com múltiplos membros, você pode usar padrões posicionais para comparar os elementos individuais.
Exemplo:var point = (3, 4); if (point is (3, var y)) { Console.WriteLine($"O valor de y é {y}"); }
-
Padrões de Lista Combinada (Logical Patterns)
Você pode combinar vários padrões usando operadores lógicos comoand
,or
, enot
para tornar suas verificações mais complexas e detalhadas.
Exemplo:if (obj is int i && i > 0) { Console.WriteLine($"O número {i} é positivo"); }
-
Padrões de Tipo de Referência (Reference Type Patterns)
Além de tipos primitivos, o C# permite realizar correspondência com tipos de referência, simplificando a verificação de valores nulos ou tipos complexos.
Exemplo:object obj = "Texto"; if (obj is string str) { Console.WriteLine($"A string é: {str}"); }
Benefícios do Pattern Matching
- Código mais limpo e legível: O Pattern Matching permite escrever expressões de controle mais concisas e claras, eliminando a necessidade de múltiplas verificações
if
ou casts explícitos. - Maior flexibilidade: Com padrões combinados, você pode realizar verificações complexas de forma simples, sem precisar escrever condições complicadas.
- Desempenho aprimorado: A correspondência de padrões é otimizada pelo compilador, o que resulta em um desempenho superior em comparação com outras formas de controle condicional.
O Pattern Matching avançado em C# é uma técnica essencial para quem deseja escrever código mais moderno e eficiente, além de facilitar a manutenção e legibilidade dos projetos.
Nenhum comentário:
Postar um comentário