forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Общие вопросы (http://forum.boolean.name/forumdisplay.php?f=166)
-   -   Уничтожить объект (http://forum.boolean.name/showthread.php?t=19806)

ILonion 22.04.2015 20:31

Уничтожить объект
 
Доброго времени!
Подскажите как в C# принудительно-директивно уничтожить объект (аналог блитца и си++ <delete>), не дожидаясь автоматического "сбора мусора" ?
Чтобы стереть его здесь и сейчас.

h1dd3n 22.04.2015 20:42

Ответ: Уничтожить объект
 
var a = new SomeClass();
a = null;
GC.Collect();

Тем не менее принудительный вызов GC.Collect() антипаттерн и вообще может сильно ударить по производительности. CLR лучше знает когда пора произвести чистку.

И зачем тебе вообще именно удалять объект ? Какой профит ты хочешь с этого поиметь ?

ILonion 22.04.2015 21:46

Ответ: Уничтожить объект
 
h1dd3n, спасибо!
Я мыслю blitz-ем: всегда в алгоритмах использовал delete n, чтобы получить актуальный список. По-видимому, я вообще мыслю неправильно в данном случае с C#.
В книге, что у меня под рукой, указываются только "сборщик мусора" и деструкторы (которые также не гарантируют "здесь и сейчас").
Теперь, как я понимаю, после a = null; переменная теряет ссылку на объект, что легко проверять через if, и "сборщик" в свое время удалит "безссылочный" объект сам.


Часовой пояс GMT +4, время: 07:10.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot