Sobes.tech
Junior — Middle

Come viene gestita e strutturata la memoria nell'ambiente C#?

sobes.tech AI

Risposta dell'AI

In C#, la gestione della memoria avviene automaticamente tramite il Garbage Collector (GC). La memoria è divisa in due aree principali:

  • Stack (Pila) — memorizza variabili locali e parametri di metodi. La memoria viene allocata e liberata molto rapidamente secondo il principio LIFO.
  • Heap (Heap) — memorizza oggetti e dati che vivono oltre il tempo di esecuzione del metodo. La memoria nell'heap è gestita dal garbage collector.

Il garbage collector libera periodicamente la memoria occupata dagli oggetti a cui non ci sono più riferimenti. Questo solleva lo sviluppatore dalla gestione manuale della memoria e riduce il rischio di perdite.

Esempio di creazione di un oggetto nell'heap:

class Program
{
    static void Main()
    {
        Person p = new Person(); // oggetto creato nell'heap
    }
}

class Person
{
    public string Name { get; set; }
}

Qui, l'oggetto Person viene creato nell'heap, mentre la variabile p si trova nello stack, facendo riferimento a quell'oggetto.