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.