Sobes.tech
Junior — Middle

Каква е целта на интерфейса IDisposable в .NET и как да го използваме?

sobes.tech AI

Отговор от AI

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

Използване:

  • Класът реализира IDisposable и преписва метода Dispose(), в който освобождава ресурсите.
  • В кода, където се използва обектът, се извиква явно Dispose() или се използва конструкцията using, която гарантира извикването на Dispose() дори при изключения.

Пример:

class ResourceHolder : IDisposable
{
    private bool disposed = false;
    public void Dispose()
    {
        if (!disposed)
        {
            // Освобождаване на ресурси
            disposed = true;
            GC.SuppressFinalize(this);
        }
    }

    ~ResourceHolder()
    {
        Dispose();
    }
}

// Използване
using (var resource = new ResourceHolder())
{
    // работа с ресурса
}
// Тук автоматично ще се извика Dispose()