/ / umiestnenie ukladacieho priestoru inštancií referenčných typov objektov - c #, .net, trieda, halda

umiestnenie úložiska inštančných polí referenčných objektov - c #, .net, trieda, halda

mal som pochybnosti, predpokladám v mojej triede (povedzme(napr. iná trieda ako príklad, nazývam ju vnútornú triedu), v čase spustenia, kedy je objekt objektu obsahujúci triedu vytvorený na halde, obsahuje triedu ukladá celú vnútornú triedy objekt v ňom, alebo obsahujúce triedu ukladá odkaz vnútornej triedy v ňom?

    internal class ContaingClass
{
private InnerClass objInner;
}

by namiesto toho, aby objekt ContainingClass odkazoval na objInner alebo ukladá celý objInner so všetkými dátami v ňom?

odpovede:

1 pre odpoveď č. 1

Kedy InnerClass je referenčný typ, ktorý je uložený ako opis inštancie.

Tu je odpoveď od Erica Lipperta, ktorý vysvetľuje podrobnosti o tom, čo sa deje počas popravy.


1 pre odpoveď č. 2

Pri konštrukcii by obsahovala nulovú hodnotuodkaz na pole (za predpokladu, že váš konštruktér nie je nastavený na nič) Pole by neskôr mohlo byť priradené k odkazu na inštanciu, ale "obsah" tejto inštancie by nebol uložený vo vnútri obsahu "Content".