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