Mesmo existindo desde a introdução de .NET, Value types (e consequentemente, structs) possuem vários aspectos que ainda em 2023 são uma fonte de confusão (pelo menos para mim). Assim sendo decide fazer uma lista dos comportamentos que podem não ser tão óbvios, os quais abordarei em na série de futuro posts abaixo:
- Este post.
- Rápida introdução à Value Types vs Reference Types.
- Initialização de campos em estruturas.
- Comportamento de construtores em estruturas.
- Outros cenários em que o comportamento de construtores em estruturas podem te surpreender.
- Argumentos default em construtores de estruturas (você ainda não esta confuso ?).
- Modificador `required` do C# 11 não vai salvar seu
c*trabalho. - Estruturas usadas como valor default de argumentos.
- Bonus: Evolução das estruturas em C#.
atualizando os links acima na medida que postar sobre cada assunto.
Antes de continuar, observe que esta série reflete o estado corrente do C#, ou seja, a versão 11 (.NET 7.0).
Espero que a mesma possa ajudá-lo, mesmo se você for um desenvolvedor C# experiente.
Como de praxe, todo retorno é bem vindo.
Have fun!