Novidades do C# 9: Init-only Properties

Renato Groffe
3 min readAug 30, 2020

--

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:

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