Novidades do C# 9: melhorias em Property Patterns
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: