2010-06-25 3 views
5

В C# выделены стек статических классов?статическое распределение классов

Поскольку они не могут быть созданы, я предполагаю, что это должно быть сделано.

+0

Если они не созданы, то экземпляры их не выделяются. – ChrisW

+2

Зачем вам выделять что-то во временном хранилище, которое не является временным *? Стек, который является временным хранилищем, предназначен для выделения вещей, которые * уходят *. Но статические классы никогда не исчезают. –

+0

@ChrisW: Тогда где живут статические поля статического класса? –

ответ

10

Они хранятся в области кучи, называемой Высокочастотная куча. Более подробную информацию вы можете найти в этой статье кодекса. Static Keyword Demystified

5

Я понимаю, что статические классы выделяются в куче (используя статический конструктор, когда тип инициализируется).

Если они были в стеке, вы бы быстро закончили пространство стека, если бы у вас было много статических классов.

Смежные вопросы