Очистка неуправляемых ресурсов
Вызовы методов Finalize объекта непосредственно пользователями приложения должны быть запрещены. Сделать это можно, ограничив область видимости этих методов зоной protected. Кроме того, должны быть исключены вызовы напрямую из программного кода приложения методов Finalize для классов, отличных от базовых классов. Правильно распорядиться неуправляемыми ресурсами можно, реализуя открытые методы Dispose и Close, которые выполняют необходимый программный код очистки объекта. Интерфейс IDisposable предоставляет метод Dispose для классов ресурса, реализующего интерфейс. Так как метод Dispose является открытым, пользователи приложения могут непосредственно вызывать его для освобождения памяти, используемой неуправляемыми ресурсами. При правильной реализации метода Dispose метод Finalize становится защитой для очистки ресурсов в случае, если метод Dispose не будет вызван. Дополнительные сведения о правильной реализации см. в разделе Реализация метода Dispose.
В этом подразделе
Реализация метода Dispose
Описывает реализацию метода Dispose для освобождения неуправляемых ресурсов.Методы "Finalize" и деструкторы
Выполнение объектом с помощью методов Finalize и деструкторов необходимых операций очистки перед автоматическим освобождением памяти объекта сборщиком мусора.Переопределение метода Finalize
Описывает способ взаимодействия методов Finalize и Dispose.Синтаксис деструкторов в C# и C++
Описывает эквиваленты метода Finalize в языках C# и C++.Использование объектов, инкапсулирующих ресурсы
Описывает способы обеспечения вызова метода Dispose, например оператор C# using (Using в Visual Basic).
Ссылка
- System.IDisposable
Определяет метод Dispose для освобождения неуправляемых ресурсов.