Sobes.tech
Back to questions
Junior — Middle
69

Объясните назначение и использование интерфейса IDisposable в .NET

Companies where asked
OZONOZON

Answer from AI

sobes.tech AI

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

Использование IDisposable позволяет контролировать время освобождения ресурсов, что важно для предотвращения утечек памяти и блокировок.

Пример использования:

class ResourceHolder : IDisposable
{
    private FileStream fileStream;

    public ResourceHolder(string filePath)
    {
        fileStream = new FileStream(filePath, FileMode.Open);
    }

    public void Dispose()
    {
        fileStream?.Dispose();
    }
}

// Использование с оператором using
using (var resource = new ResourceHolder("file.txt"))
{
    // Работа с ресурсом
}
// После выхода из using автоматически вызывается Dispose()

Таким образом, IDisposable помогает управлять жизненным циклом ресурсов и гарантирует их корректное освобождение.