Novidades do C# 8.0: Property Patterns
Em artigos anteriores sobre o C# 8.0 abordei novidades relativas ao uso de Pattern Matching, com exemplos práticos baseados em Switch Expressions e Tuple Patterns:
Novidades do C# 8.0: Switch Expressions
Novidades do C# 8.0: Tuple Patterns
Neste novo post retomo esse trabalho, apresentando desta vez a opção batizada como Property Patterns. Essa alternativa simplifica a codificação de expressões envolvendo a análise dos possíveis valores para uma propriedade em um objeto.
OBSERVAÇÃO: Para a realização dos testes aqui descritos utilizei o Preview 4 do .NET Core 3.0, além do Update 16.1.0 do Visual Studio 2019 Preview.
E aproveito este espaço para deixar aqui também um convite.
Dia 25/04/2019 (quinta-feira) às 21:30 — horário de Brasília — teremos mais um evento online gratuito no Canal .NET. Desta vez o MVP Luiz Carlos Faria fará uma apresentação sobre o uso de containers Docker como meio para simplificar a montagem de ambientes de Desenvolvimento.
Para efetuar a sua inscrição acesse a página do evento no Meetup. A transmissão acontecerá via YouTube, em um link a ser divulgado em breve.
O projeto criado foi ajustado para utilizar o C# 8.0 - acessar para isto Properties > Build > Advanced e escolher unsupported preview of next C# version ou C# 8.0 (beta):
Considerando a classe Passagem:
E a listagem a seguir, em que o método AplicarAdicional será utilizando no cálculo do preço final de uma passagem (com as verificações empregando uma combinação de switch e case):
Utilizando Property Patterns este código ficará muito mais simplificado, conforme detalhado na próxima listagem (em que consta uma versão refatorada do método AplicarAdicional):
- Foi dispensado o uso de case, com o objeto a ser analisado seguido por switch;
- Os valores possíveis da propriedade SiglaRegiao estão entre chaves ({ e }), com as expressões de retorno precedidas por =>;
- O uso da palavra-chave default foi substituído por _.
Ao execução desta aplicação de testes terá como resultado:
Caso deseje saber mais sobre outras novidades trazidas pelo C# 8.0, acesse também o post a seguir em que venho listando todos os conteúdos que produzo sobre esta nova versão da linguagem:
C# 8.0 - Guia de Referência: artigos, vídeos e exemplos de utilização