Встречается на собеседованиях • сегодня

Что такое Finalize

Finalize — это метод, вызываемый сборщиком мусора (GC) перед удалением объекта, если он не был освобожден явно (например, через Dispose). Это последний шанс объекта освободить неуправляемые ресурсы (файлы, сетевые подключения и т. д.).

Особенности:

  • Вызывается недетерминированно (нельзя предсказать, когда GC его вызовет).
  • Переопределяется в классе с синтаксисом ~ClassName().
  • Не гарантирует немедленного освобождения ресурсов.

Пример:

csharp
class ResourceHolder
{
    ~ResourceHolder() // Finalizer
    {
        Console.WriteLine("Finalizer called. Cleaning up...");
        // Освобождение неуправляемых ресурсов
    }
}

Лучшая практика:
Используйте IDisposable и паттерн Dispose для детерминированного управления ресурсами, а Finalize — только как резервный вариант.

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы