2010-06-25 26 views
5

In C# sono allocate le classi statiche?allocazione di classe statica

Dal momento che non possono essere istanziati, suppongo che debba essere il modo in cui è fatto.

+0

Se/perché non vengono istanziati, quindi non vengono allocate delle istanze. – ChrisW

+2

Perché dovresti assegnare qualcosa sul temporary store * non temporaneo *? Lo stack, noto anche come temporary store, serve per allocare cose che * vanno via *. Ma le classi statiche non vanno mai via. –

+0

@ChrisW: Allora dove vivono i campi statici della classe statica? –

risposta

10

Sono memorizzati all'interno dell'area dell'heap denominata Heap ad alta frequenza. Puoi trovare maggiori dettagli in questo articolo codeproject. Static Keyword Demystified

5

La mia comprensione è che le classi statiche sono allocate nell'heap (utilizzando il costruttore statico, quando il tipo è inizializzato).

Se fossero in pila, avresti esaurito lo spazio di stack molto rapidamente, se avessi avuto un sacco di classi statiche che si scatenavano.

Problemi correlati