Junior — Middle
Kas on võimalik deklareerida klassi funktsiooni või muu ploki sees ja paigutada see virna mällu?
sobes.tech AI
Vastus AI-lt
C# keeles on võimalik deklareerida kohalikud klassid meetodite sees (alates C# 7-st), kuid need ei paikne virnas, kuna klassid on viidetüübid ja asuvad alati hallatavas kogus.
Väärtustüübid, mida saab paigutada virna, kasutavad struktuure (struct). Kuid structide deklareerimine meetodi sees ei ole võimalik — need peavad olema deklareeritud klassi või nimelahenduse tasandil.
Näide kohalikust klassist meetodi sees:
void MyMethod() {
class LocalClass {
public int Value;
}
var obj = new LocalClass { Value = 10 };
}
Kuid objekt obj paikneb kogus, mitte virnas.