Уничтожить объект
Доброго времени!
Подскажите как в C# принудительно-директивно уничтожить объект (аналог блитца и си++ <delete>), не дожидаясь автоматического "сбора мусора" ? Чтобы стереть его здесь и сейчас. |
Ответ: Уничтожить объект
var a = new SomeClass();
a = null; GC.Collect(); Тем не менее принудительный вызов GC.Collect() антипаттерн и вообще может сильно ударить по производительности. CLR лучше знает когда пора произвести чистку. И зачем тебе вообще именно удалять объект ? Какой профит ты хочешь с этого поиметь ? |
Ответ: Уничтожить объект
h1dd3n, спасибо!
Я мыслю blitz-ем: всегда в алгоритмах использовал delete n, чтобы получить актуальный список. По-видимому, я вообще мыслю неправильно в данном случае с C#. В книге, что у меня под рукой, указываются только "сборщик мусора" и деструкторы (которые также не гарантируют "здесь и сейчас"). Теперь, как я понимаю, после a = null; переменная теряет ссылку на объект, что легко проверять через if, и "сборщик" в свое время удалит "безссылочный" объект сам. |
Часовой пояс GMT +4, время: 07:10. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot