Sobes.tech
Junior — Middle

Hoe verschillen de opslagmethoden voor referentie- en waarde-typen in het geheugen in C#?

sobes.tech AI

Antwoord van AI

In C# worden waardetypen, zoals int, struct, bool, opgeslagen in de stack of direct binnen het object als ze velden van een referentietype zijn. Ze bevatten de gegevens zelf.

Referentietypen, zoals klassen (class), worden opgeslagen in de heap. De variabele van het referentietype bevat niet de gegevens zelf, maar een verwijzing (pointer) naar het geheugengebied in de heap waar de gegevens van het object worden opgeslagen.

Voorbeeld:

int a = 5; // 'a' slaat de waarde 5 op in de stack
MyClass obj = new MyClass(); // 'obj' slaat een verwijzing op naar een object in de heap

Dus, bij het doorgeven van waardetypen wordt de waarde gekopieerd, en bij het doorgeven van referentietypen wordt de verwijzing naar het object gekopieerd.