Jun 30, 2023

Structs em C# - diversão garantida - Parte 1/9

Lisez cet post en french.

Read this post in English.

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:

  1. Este post.
  2. Rápida introdução à Value Types vs Reference Types.
  3. Initialização de campos em estruturas.
  4. Comportamento de construtores em estruturas.
  5. Outros cenários em que o comportamento de construtores em estruturas podem te surpreender.
  6. Argumentos default  em construtores de estruturas (você ainda não esta confuso ?).
  7. Modificador `required` do C# 11 não vai salvar seu c* trabalho.
  8. Estruturas usadas como valor default de argumentos.
  9. 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!

Structs in C# are fun - Part 1/9

Leia este post em português

Lisez cet post en french.

Value types (and consequently, structs) existed in .NET since its inception, yet they are still a source of confusion in 2023 (at least for me). So I decided to collect a list of subjects, that may or may not be so obvious to some .NET developers, and I'll discuss them in the following posts (I'll update the list adding links as I post about each topic):

  1. This post.
  2. Brief introduction to Value Types vs Reference Types.
  3. Field initialization in structs.
  4. Constructors and struct behavior.
  5. Other scenarios in which struct constructors behavior may surprise you.
  6. Struct with default argument values in constructors, a.k.a, are you not confused yet ?
  7. `required` feature from C# 11 will not save your a** job.
  8. Struct used as default argument values.
  9. Bonus: Struct evolution in C#.

Before continuing, note that this series reflects the current state of C# as of version 11 (.NET 7.0).

Last, but not least, even if you are an experienced C# developer I hope you can learn something or, why not, add your own perspective/contribution to the subject.

As always, all feedback is welcome.

Have fun!

Les structures en C# sont amusantes - Partie 1/9

Leia este post em português

Read this post in English.

Les value types (et par conséquent, les structures) existaient dans .NET depuis sa création, mais ils sont toujours une source de confusion en 2023 (au moins pour moi). J'ai donc décidé de rassembler une liste de comportements, qui peuvent ne pas être si évidents pour certains développeurs .NET, laquelle j'en discuterai dans le série de futurs articles ci-dessous:

  1. Ce post.
  2. Brève introduction aux Value Types vs Reference Types.
  3. Initialisation des champs dans les structures.
  4. Comportement des constructeurs dans structures.
  5. Des autres scénarios dans lesquels le comportement des constructeurs de structure peut vous surprendre.
  6. Struct avec des valeurs d'argument par défaut dans les constructeurs, ou, n'êtes-vous pas encore confus ?
  7. Le modificateur `required`de C # 11 ne sauvegardera pas votre c*l emploi.
  8. Structure utilisée comme valeurs d'argument défaut.
  9. Bonus: L'evolution des structures en C#.

Avant de continuer, svp, notez que cette série reflète l'état actuel de C#, cet a dire, la version 11 (.NET 7.0).

Même si vous êtes un développeur C# expérimenté, j'espère que vous pourrez apprendre quelque chose ou, pourquoi pas, ajouter votre point de vue/contribution au sujet..

Comme toujours, tous les commentaires sont bienvenus.

Amusez-vous!