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()