Junior — Middle
Pouvez-vous expliquer en quoi les types de référence diffèrent des types de valeur dans le langage C#?
sobes.tech IA
Réponse de l'IA
En C#, les types de données sont divisés en types de valeur (value types) et types de référence (reference types).
- Types de valeur stockent directement les données. Lors de l'affectation ou du passage à une méthode, la valeur est copiée. Exemples :
int,double,struct. - Types de référence stockent une référence à une zone mémoire où se trouvent les données. Lors de l'affectation, seule la référence est copiée, pas les données elles-mêmes. Exemples :
class,string, tableaux.
Exemple :
int a = 5;
int b = a; // b reçoit une copie de la valeur 5
b = 10; // a reste 5
class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // p2 et p1 référencent le même objet
p2.Name = "Bob"; // maintenant p1.Name est aussi "Bob"
Ainsi, les modifications dans les types de référence via une variable se reflètent sur toutes les références, tandis que dans les types de valeur, non.