Sobes.tech
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.