.NET gère la mémoire automatiquement via un garbage collector (GC) — il alloue les objets sur le tas géré et récupère ceux qui ne sont plus accessibles, donc vous n'avez pas besoin de libérer manuellement la mémoire. Comprendre le GC (générationnel, la séparation pile/tas, et IDisposable) est important pour la performance et la correctness.
Pile vs tas
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.
