Sobes.tech
Junior — Middle

Hoe wordt het geheugen beheerd en gestructureerd in de C#-omgeving?

sobes.tech AI

Antwoord van AI

In C# wordt geheugenbeheer automatisch uitgevoerd door de Garbage Collector (GC). Het geheugen is verdeeld in twee hoofdgebieden:

  • Stack (Stapel) — slaat lokale variabelen en methodparameters op. Het geheugen wordt zeer snel toegewezen en vrijgegeven volgens het LIFO-principe.
  • Heap (Heap) — slaat objecten en gegevens op die langer blijven bestaan dan de uitvoeringstijd van de methode. Het geheugen op de heap wordt beheerd door de garbage collector.

De garbage collector vrijmaakt periodiek het geheugen dat door objecten wordt gebruikt, waar geen verwijzingen meer naar zijn. Dit ontlast de ontwikkelaar van handmatig geheugenbeheer en vermindert het risico op geheugenlekken.

Voorbeeld van het maken van een object op de heap:

class Program
{
    static void Main()
    {
        Person p = new Person(); // object wordt op de heap gemaakt
    }
}

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

Hier wordt het Person-object op de heap gemaakt, terwijl de variabele p op de stack staat en naar dat object verwijst.