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

Что такое IDisposable

Интерфейс IDisposable используется для освобождения неуправляемых ресурсов (файлы, соединения с БД и т.д.). Реализуя его, класс должен определить метод Dispose(), который выполняет очистку.

Основные моменты:

  • Используется в using для автоматического вызова Dispose()
  • Может вызываться вручную
  • Включает финализатор (~ClassName) для резервной очистки

Пример:

csharp
public class ResourceHolder : IDisposable
{
    private FileStream _fileStream;

    public void Dispose()
    {
        _fileStream?.Dispose();
        GC.SuppressFinalize(this); // Отменяет финализацию, если Dispose вызван
    }

    ~ResourceHolder() => Dispose(); // Финализатор (на случай, если Dispose не вызвали)
}

Использование:

csharp
using (var holder = new ResourceHolder())
{
    // работа с ресурсом
} // Dispose() вызовется автоматически
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы