Junior — Middle
Puteți explica în ce constă diferența dintre tipurile de referință și cele de valoare în limbajul C#?
sobes.tech AI
Răspuns de la AI
În C#, tipurile de date sunt împărțite în tipuri de valoare (value types) și tipuri de referință (reference types).
- Tipurile de valoare stochează datele direct. La atribuirea sau transmiterea către o metodă, valoarea este copiată. Exemple:
int,double,struct. - Tipurile de referință stochează o referință către zona de memorie unde se află datele. La atribuire, se copiază doar referința, nu datele în sine. Exemple:
class,string, array-uri.
Exemplu:
int a = 5;
int b = a; // b primește o copie a valorii 5
b = 10; // a rămâne 5
class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // p2 și p1 fac referire la același obiect
p2.Name = "Bob"; // acum p1.Name este și "Bob"
Astfel, modificările în tipurile de referință printr-o variabilă se reflectă în toate referințele, în timp ce în tipurile de valoare nu.