Une struct se copie, une class se partage. Cette différence explique un paquet de bugs subtils. Prédisez chaque résultat.
En C#, un type valeur (struct, int, bool…) se copie à l'affectation ; un type référence (class) se partage. Comprendre ça, c'est éviter des heures de débogage. Devinez la sortie de chaque extrait.
Pile vs Tas : où vivent tes données
Deux choses font toute la différence : où est stockée la donnée, et ce qui est copié quand on affecte la variable. Un type valeur contient la donnée elle-même (copiée en entier) ; un type référence ne contient qu'un renvoi vers la donnée (la copie pointe sur le même objet). À gauche, un type valeur ; à droite, un type référence.
Type valeur (struct, int…)Type référence (class, object…)
Un type valeur est sa donnée (sur la pile) ; un type référence est une flèche vers l'objet (sur le tas). D'où le piège : copier une référence ne duplique pas l'objet — les deux variables le partagent.