Junior — Middle
How do the methods of storing reference and value types differ in memory in C#?
sobes.tech AI
Answer from AI
In C#, value types, such as int, struct, bool, are stored on the stack or directly within the object if they are fields of a reference type. They contain the actual data.
Reference types, such as classes (class), are stored on the heap. A variable of a reference type contains not the data itself, but a reference (pointer) to the memory area on the heap where the object data is stored.
Example:
int a = 5; // 'a' stores the value 5 on the stack
MyClass obj = new MyClass(); // 'obj' stores a reference to the object on the heap
Thus, when passing value types, the value is copied, whereas when passing reference types, the reference to the object is copied.