Novidades do C# 9: melhorias em Property Patterns

Renato Groffe
2 min readSep 7, 2020

--

Com este sétimo artigo dou continuidade à série de novidades do C# 9, demonstrando desta vez o uso de Property Patterns com operadores comparativos como >, <, >= e <=.

Já abordei a utilização de Property Patterns na série de novidades sobre o C# 8:

Novidades do C# 8.0: Property Patterns

Caso não tenha ainda visualizado algum artigo da série sobre C# 9 ou, até mesmo, deseje rever algum destes conteúdos seguem os links:

Novidades do C# 9: Init-only Properties

Novidades do C# 9: Logical Patterns

Novidades do C# 9: Relational Patterns

Novidades do C# 9: o operador is not

Novidades do C# 9: new expressions

Novidades do C# 9: Top Level Programs

Para os testes aqui detalhados implementei uma Console Application, utilizando para isto o Preview 8 do .NET 5.0 em Windows e o Visual Studio 2019 16.8.0 Preview 2.1.

Na listagem a seguir temos a implementação da classe Program:

  • O array arquivos conterá strings com os caminhos de arquivos (existentes ou não) na máquina em que a aplicação for executada;
  • Uma instância de FileInfo (namespace System.IO) será criada a partir dos caminhos de arquivos que compõem o array. A condição especificada na linha 21 verifica se o arquivo em questão realmente existe, além de checar se o tamanho do mesmo é superior a mil bytes (em caso informativo o caminho e o tamanho serão exibidos em tela).

Podemos refatorar este código utilizando Property Patterns:

  • A condição para determinar se o arquivo existe e possui um tamanho superior a mil bytes está fazendo uso agora da variável do tipo FileInfo, assim como da palavra-chave is (linha 23);
  • Podemos informar entre chaves as propriedades que servirão de base para as comparações (Exists e Length), incluindo o uso de operadores de comparação como > (maior que).

O resultado da execução desta aplicação de testes está na imagem a seguir:

E aproveito este espaço para um convite…

Dia 14/09/2020 (segunda) a partir das 21:00 — horário de Brasília — teremos uma live no Canal .NET cobrindo as diversas novidades do C# 9. O evento será ONLINE e GRATUITO, com transmissão pelo YouTube.

Para participar faça sua inscrição no meetup:

https://bit.ly/live-csharp9-canaldotnet

--

--

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

No responses yet