Sobes.tech
Junior — Middle

Mindig a referenciaértékű típusokat helyezik a memóriaveremre?

sobes.tech MI

Válasz az MI-től

Nem, a referencia típusok (reference types) C#-ban nem mindig kerülnek a verembe (stack). A referencia típusok általában a kezelhető halmazban (heap) helyezkednek el, és a veremben csak a hivatkozás tárolódik az objektumra.

Például:

class MyClass { }

void Method()
{
    MyClass obj = new MyClass(); // az obj egy hivatkozás, a veremben tárolódik
    // A MyClass objektum maga a heap-en helyezkedik el
}

Az értéktípusok, mint például a struktúrák (struct), általában a veremben helyezkednek el, ha helyi változók, de a heap-en is lehetnek, ha referencia típusú objektumok mezői.

Így a helyezés a típus és a használati kontextus függvénye, nem csak attól, hogy a típus referencia-e vagy sem.