может ли переменная enum собираться? - PullRequest
1 голос
/ 20 августа 2011

Обычно все ссылочные типы отбираются, когда на них нет ссылок. Как насчет переменной enum? будет ли он собираться мусором, даже если он выходит за рамки (значит, на него больше не ссылаются)?

Ответы [ 3 ]

6 голосов
/ 20 августа 2011

Ваш вопрос написан очень запутанно.

Обычно все ссылочные типы отбираются, когда на них нет ссылок.

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

А как насчет переменной enum? будет ли он собираться мусором, даже если на него не распространяется (значит, на него больше не ссылаются)?

Область действия переменной - это область текста программы, в которой переменная может быть доступна по ее имени. область действия переменной слабо связана с ее продолжительностью жизни , о чем вы и просите. Время жизни переменной может быть длиннее или короче, чем период времени, в течение которого управление программой входит в его область действия!

Кроме того, совершенно неясно, что вы подразумеваете под "будет ли переменная enum собираться мусором?" Переменные - это места хранения, поэтому переменная должна где-то быть . Где находится переменная ? Это поле класса? это локальная переменная? Это закрытая внешняя переменная лямбды? Это элемент массива перечислимого типа? Все это влияет на то, собирается ли хранилище, связанное с переменной, и, если это так, когда оно собирается.

Ваш вопрос не имеет никакого смысла, как вы его задали. Вы можете уточнить вопрос?

Вы также можете прочитать мой ответ на этот связанный вопрос:

Получают ли типы значений сборщик мусора?

2 голосов
/ 20 августа 2011

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

0 голосов
/ 20 августа 2011

Перечисление в C # является типом значения, поэтому будет следовать правилам сборки мусора для типов значений, которые откладываются в зависимости от области объявления этого типа.Вы можете найти много информации в Интернете.Вот примерная ссылка сравнения типов и значений также с точки зрения GC.

http://www.albahari.com/valuevsreftypes.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...