.NET управляет памятью автоматически через сборщик мусора (GC) — он выделяет объекты на управляемой куче и освобождает те, которые больше не доступны, поэтому вам не нужно вручную освобождать память. Понимание GC (поколений, разделения стека/кучи и IDisposable) важно для производительности и корректности.
Стек vs куча
Stack → value types (locals), method frames; fast, automatically freed when scope ends.
Heap → reference type objects (class instances); managed by the GC.
A reference variable lives on the stack but points to its object on the heap.
