.NET zarządza pamięcią automatycznie za pośrednictwem garbage collectora (GC) — przydziela obiekty na zarządzanym stosie i odbiera te, które są niedostępne, więc nie musisz ręcznie zwalniać pamięci. Zrozumienie GC (generacyjny, podział stack/heap i IDisposable) ma znaczenie dla wydajności i poprawności.
Stack vs heap
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.
