Встречается на собеседованиях • сегодня
Что такое Finalize
Finalize — это метод, вызываемый сборщиком мусора (GC) перед удалением объекта, если он не был освобожден явно (например, через Dispose). Это последний шанс объекта освободить неуправляемые ресурсы (файлы, сетевые подключения и т. д.).
Особенности:
- Вызывается недетерминированно (нельзя предсказать, когда GC его вызовет).
- Переопределяется в классе с синтаксисом
~ClassName(). - Не гарантирует немедленного освобождения ресурсов.
Пример:
csharp
class ResourceHolder
{
~ResourceHolder() // Finalizer
{
Console.WriteLine("Finalizer called. Cleaning up...");
// Освобождение неуправляемых ресурсов
}
}Лучшая практика:
Используйте IDisposable и паттерн Dispose для детерминированного управления ресурсами, а Finalize — только как резервный вариант.
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы
