Задать вопрос
@bashtanka94

Где хранится статическая переменная класса в.Net?

Задался вопросом где хранится статическая переменная в .net? Но точного ответа так и не нашел...
Насколько я понял, то они хранятся в объекте типа, а значит в куче... Следовательно при каждом обращении к ним происходит распаковка?
  • Вопрос задан
  • 6303 просмотра
Подписаться 2 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
Ответ написан
Комментировать
@mayorovp
Нет, распаковки не происходит. Распаковка нужна при явном преобразовании объекта в значение - тут же операция ldfld сразу получает значение.

Детали реализации (где оно хранится) в этом плане не имеют значения.
Ответ написан
Комментировать
Статическая переменная храниться в 1 экземпляре в памяти, и мета данных сборки на HDD.
Объект - хранит в себе все статические поля и методы (паттерн Flyweight).
Экземпляр - хранит в себе все не статические поля класса. (иначе он бы хранил не изменяемые копии повторяющихся данных).
На Youtube канал ITVDN, бесплатно доступна лекция из курса "C# Базовый", посмотрите.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы