В конечном итоге статические свойства живут в gen2? - PullRequest
3 голосов
/ 05 мая 2011

Когда у меня есть поле / свойство static, которое находится в моем пуле приложений в течение всего срока службы пула приложений, где оно находится в памяти?Я предполагаю, что его повысили до gen2 и доживут там до сих пор?(при условии, что он достаточно мал, чтобы не войти в LOH )

1 Ответ

4 голосов
/ 05 мая 2011

Статические свойства находятся в куче в области памяти, выделенной для объекта типа для типа / класса. Они загружаются одновременно с типом загрузки.

Статические свойства нельзя собирать мусором. Тип объекта никогда не может быть выгружен.

Конец главы 4 книги CLR через C # объясняет это. Вот небольшая фрагментарная диаграмма: enter image description here

Это только часть диаграммы (не может копироваться полностью из-за авторских прав) и показывает объект типа Employee со своими статическими полями. Тип объекта аналогичен всем остальным объектам и имеет указатель на его тип, который оказывается System.Type.

...