Встречается на собеседованиях • сегодня
Что такое 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
интервью вопросы и ответы
