Junior — Middle
Cum diferă modalitățile de stocare a tipurilor de date referință și de valoare în memorie în C#?
sobes.tech AI
Răspuns de la AI
În C#, tipurile de valoare, cum ar fi int, struct, bool, sunt stocate în stivă (stack) sau direct în interiorul obiectului dacă sunt câmpuri ale unui tip de referință. Ele conțin datele în sine.
Tipurile de referință, cum ar fi clasele (class), sunt stocate în heap. Variabila de tip de referință nu conține datele în sine, ci o referință (pointer) către zona de memorie din heap unde sunt stocate datele obiectului.
Exemplu:
int a = 5; // 'a' stochează valoarea 5 în stivă
MyClass obj = new MyClass(); // 'obj' stochează o referință la un obiect în heap
Prin urmare, la transmiterea tipurilor de valoare se copiază valoarea, iar la transmiterea tipurilor de referință se copiază referința către obiect.