Junior — Middle
Care este diferența dintre tipurile de date de referință și cele de valoare în programare?
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 în sine este copiată. Exemple: int, double, struct, bool.
Tipurile de referință stochează o referință către o zonă de memorie unde se află datele. La atribuire, se copiază referința, nu datele în sine, astfel mai multe variabile pot indica același obiect. Exemple: class, string, array.
Exemplu:
int a = 5;
int b = a; // se copiază valoarea 5
b = 10;
// a încă este 5
class Person { public string Name; }
Person p1 = new Person { Name = "Alice" };
Person p2 = p1; // se copiază referința
p2.Name = "Bob";
// p1.Name acum este "Bob"
Prin urmare, diferența principală constă în modul de stocare și copiere a datelor: tipurile de valoare copiază valorile, cele de referință copiază referințe către obiecte.