Sobes.tech
Junior — Middle

Comment diffèrent les méthodes de stockage des types de données référentiels et de valeur en mémoire en C#?

sobes.tech IA

Réponse de l'IA

En C#, les types de valeur, tels que int, struct, bool, sont stockés dans la pile (stack) ou directement à l’intérieur de l’objet s’ils sont des champs d’un type de référence. Ils contiennent les données elles-mêmes.

Les types de référence, comme les classes (class), sont stockés dans le tas (heap). La variable de type de référence ne contient pas les données elles-mêmes, mais une référence (pointeur) à la zone mémoire dans le tas où sont stockées les données de l’objet.

Exemple :

int a = 5; // 'a' stocke la valeur 5 dans la pile
MyClass obj = new MyClass(); // 'obj' stocke une référence à un objet dans le tas

Ainsi, lors du passage de types de valeur, la valeur est copiée, et lors du passage de types de référence, la référence à l’objet est copiée.