Junior — Middle
Как се различават начините за съхранение на референтни и стойностни типове данни в паметта в C#?
sobes.tech AI
Отговор от AI
В C# типовете стойност, като int, struct, bool, се съхраняват в стека (stack) или директно вътре в обекта, ако са полета на референтен тип. Те съдържат самите данни.
Референтните типове, като класове (class), се съхраняват в купчината (heap). Променливата от референтен тип съдържа не самите данни, а препратка (указател) към областта на паметта в купчината, където се съхраняват данните на обекта.
Пример:
int a = 5; // 'a' съхранява стойност 5 в стека
MyClass obj = new MyClass(); // 'obj' съхранява препратка към обект в купчината
Така, при предаване на стойностни типове се копира стойността, а при предаване на референтни типове се копира препратката към обекта.