C# 11 -  Campos pré-definidos em Structs


  Hoje veremos o novo recurso do C# 11 : Auto-Defaulted fields ou campos pré-definidos em structs.

Antes do C# 11, todas as propriedades de uma Struct no construtor precisavam ser inicializadas ou correriam o risco de um erro de compilação.



Antes do C# 11, se você declarasse uma Struct e tivesse um Construtor, precisaria atribuir cada campo :

Um struct compartilha todos os recursos de um tipo de classe. Assim como no tipo de classe, podemos declarar campos no tipo struct. Antes do C# 11, era obrigatório inicializar explicitamente todos os campos dentro do construtor (somente se um construtor for declarado na estrutura).

O exemplo de código abaixo mostra a mesma Struct, mas agora os campos não foram inicializados, e isso causa um erro de compilação:


Qual é o novo comportamento?

O C# 11 vai padronizar automaticamente todos esses campos, o que significa que o valor padrão do respectivo tipo seria atribuído aos campos, sem especificá-lo explicitamente no código.

Para o nosso exemplo vamos atribuir valor ao campo Nome no construtor:

Executando o projeto podemos constatar que o valor padrão zero será atribuído ao campo Idade de forma padrão.

Este recurso pode incrementar o uso de Structs quando elas foram realmente necessárias.

E estamos conversados...

"Nada, em toda a criação, está oculto aos olhos de Deus. Tudo está descoberto e exposto diante dos olhos daquele a quem havemos de prestar contas."
Hebreus 4:13

Referências:


José Carlos Macoratti