Novidades do C# 9: Init-only Properties
Nesta última semana (terça, 25/08) tivemos o anúncio do Preview 8 do .NET 5.0, com boa parte dos recursos previstos para o release oficial desta nova versão da plataforma .NET já estando disponíveis para testes:
Com esse novo artigo retomo a série de novidades do C# 9, abordando desta vez o uso de Init-only Properties. Caso não tenha ainda visualizado algum artigo da série ou, até mesmo, deseje rever algum destes conteúdos seguem os links:
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 descritos instalei o Preview 8 do .NET 5.0 em Windows e criei uma nova Console Application conforme indicado a seguir:
dotnet new console -n ExemploInitOnlyProperties
Utilizei também nos testes com Init-only Properties o Visual Studio 2019 16.8.0 Preview 2.0.
Na listagem a seguir temos a implementação da classe Estado:
- Este tipo conta com as propriedades somente leitura Sigla e Nome. A novidade na declaração destas propriedades fica pela presença da palavra-chave init (e obviamente de get);
- Temos assim a opção de preencher estas propriedades durante a instanciação de um novo objeto ou em um construtor (como demonstrado a partir da linha 10).
Já na próxima listagem está o código que define a classe Program:
- Na linha 10 temos um exemplo de atribuição de valores a propriedades somente leitura, durante a criação de uma nova instância da classe Estado;
- Em seguida na linha 17 um segundo exemplo faz uso do construtor que recebe 2 parâmetros em Estado, a fim de proceder com o preenchimento das propriedades Sigla e Nome.
O resultado da execução desta aplicação de testes pode ser observado 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: