Sobes.tech
Junior — Middle

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

sobes.tech AI

Отговор от AI

Интерфейсът IDisposable в .NET е предназначен за освобождаване на unmanaged ресурси като файлове, мрежови връзки, дескриптори и др. Той съдържа един метод — 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 помага за управлението на жизнения цикъл на ресурсите и гарантира тяхното правилно освобождаване.