Novidades do C# 8.0: Property Patterns

Renato Groffe
2 min readApr 22, 2019

--

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

--

--

Renato Groffe
Renato Groffe

Written by Renato Groffe

Microsoft Most Valuable Professional (MVP), Multi-Plataform Technical Audience Contributor (MTAC), Software Engineer, Technical Writer and Speaker

Responses (1)