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

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

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

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

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

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