Ответ 1
Статические элементы всегда хранятся в глобальной куче, даже элементы ссылочного типа. Однако эта куча не является обычной кучей мусора. Подробнее здесь: http://www.codeproject.com/KB/cs/codeconcepts.aspx
У меня есть класс, который имеет статический член. Насколько я понимаю, все статические члены являются общими для всех экземпляров класса, что означает, что статические члены будут выделять память только один раз. Где выделена эта память (стек или куча) и когда выделена эта память?
EDIT:. Эта память отличается от памяти уровня экземпляра. Как ссылается эта память? Освобождается ли эта память во время компиляции?
Статические элементы всегда хранятся в глобальной куче, даже элементы ссылочного типа. Однако эта куча не является обычной кучей мусора. Подробнее здесь: http://www.codeproject.com/KB/cs/codeconcepts.aspx
Распределение памяти для статических членов выполняется только тогда, когда тип используется для времени, будь то объявление переменной или доступ к статическому члену.
Как уже указывалось, выделение памяти для статических элементов выполняется в куче.
Эта память распределяется по куче. Каждый тип имеет статический конструктор, который выполняет инициализацию типа. Он выполняется до доступа к типу.