Разница ч / б деструктор и метод финализации

Я хочу знать последовательность, как эти функции называются. Например, если наша куча заполнена, будет вызван GC. Он будет отмечать объект и вызывать его операцию завершения, теперь у нас есть этап развертки... на котором ссылка на этот объект удаляется и объект становится недоступным. Так, где уничтожение вступает в цикл... Когда это будет вызвано..Что это будет делать тогда....

4 ответа

Я должен рекомендовать источник на этом. Eric Lippert из команды компиляторов C# недавно опубликовал статью на эту тему: в чем разница между деструктором и финализатором?

Исходя из их принятых определений, они на самом деле задом наперед в C#. Читайте его пост, хотя я не могу описать его лучше.

В C#/.NET нет "деструктора", хотя в прошлом термин, по-видимому, использовался взаимозаменяемо с "финализатором".

В большинстве случаев вам также не следует реализовывать финализаторы; основной случай, когда вам нужно их использовать, это если класс удерживает неуправляемые ресурсы, и в этом случае вы должны реализовать IDisposable шаблон (технически, вы можете позвонить Dispose "деструктор", но на самом деле он не освобождает память в куче, что является важным отличием при обсуждении управления памятью).

Не пытайтесь угадать GC с точки зрения управления памятью. Просто убедитесь, что вы освобождаете любые неуправляемые ресурсы, которые используете (дескрипторы файлов и т. Д.). И если вы видите, что кто-то использует термин " деструктор", он, вероятно, хотел сказать " финализатор".

Существует множество документов, объясняющих, как работает сборщик мусора.NET. Вот несколько для начала:

http://msdn.microsoft.com/en-us/magazine/bb985010.aspx

http://msdn.microsoft.com/en-us/library/ms973837.aspx

http://www.simple-talk.com/dotnet/.net-framework/understanding-garbage-collection-in-.net/

Очень хорошее видео об управлении памятью.Net находится на .Net Memory Management. Это поможет очистить ваши сомнения относительно финализатора и того, как он называется, как он называется и т. Д.

Другие вопросы по тегам