Sobes.tech
Junior — Middle

Comment fonctionnent les types de données de référence en mémoire et en quoi diffèrent-ils des types de valeur?

sobes.tech IA

Réponse de l'IA

En C# il existe deux types principaux de données : types de valeur (value types) et types de référence (reference types).

  • Les types de valeur stockent directement les données en mémoire à l'endroit où ils sont déclarés. Par exemple, int, struct. Lors de l'affectation, la valeur est copiée, et chaque variable possède sa propre copie.

  • Les types de référence stockent dans la variable non pas les données elles-mêmes, mais une référence (pointeur) vers la zone mémoire où se trouvent les données. Par exemple, class, string. Lors de l'affectation, seule la référence est copiée, pas l'objet, ce qui permet à plusieurs variables de pointer vers le même objet.

Exemple :

int a = 5;
int b = a; // copie de la valeur
b = 10;
// a est toujours 5

class Person { public string Name; }
Person p1 = new Person { Name = "Иван" };
Person p2 = p1; // copie de la référence
p2.Name = "Пётр";
// p1.Name est aussi "Пётр", car p1 et p2 pointent vers le même objet

Ainsi, les types de référence permettent de travailler avec un même objet depuis différentes variables, tandis que les types de valeur stockent des copies indépendantes des données.