Сборщик мусора и статический класс, переменная - PullRequest
6 голосов
/ 10 ноября 2011

Одна мысль удивляет меня с последних дней. Я хочу знать, как сборщик мусора работает со статическими классами, переменными?

Как мы все знаем, сборщик мусора отслеживает объекты, созданные в приложении, и автоматически удаляет их, когда они больше не используются. Для статического класса объект не создается и загружается в память вместе с отладкой приложения.

Значит сборщик мусора обрабатывает статические классы?

Ответы [ 2 ]

10 голосов
/ 10 ноября 2011

Статические классы удалять не нужно, поскольку они не являются объектами и не потребляют память (кроме фактического кода класса, загружаемого инфраструктурой .NET). С другой стороны, статические поля в статических классах - это объекты, которые потребляют память. Они не будут собраны, поскольку они доступны в течение всего срока службы приложения. Если вы хотите освободить память, вы должны установить в поле значение null, чтобы объект, на который указывало поле, имел право на GC

1 голос
/ 10 ноября 2011

Он никогда не выпустит их.(например, в WEB до перезагрузки IIS).

Они никогда не скажут: «Никто не ссылается на меня, поэтому я свободен идти»

также

вы никогда не можете делать что-то новое для Static Class .... поэтому его использование осуществляется просто объектом Class (а не экземпляром).

Так что .net не рискует и не пускает его в GC.

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