Junior — Middle
Jaký je účel rozhraní IDisposable v .NET a jak jej používat?
sobes.tech AI
Odpověď od AI
Rozhraní IDisposable v .NET je určeno k ručnímu uvolnění nemanaged zdrojů (například souborových deskriptorů, připojení k databázi), když objekt již není potřeba.
Použití:
- Třída implementuje IDisposable a přepisuje metodu Dispose(), ve které uvolňuje zdroje.
- V kódu, kde je objekt používán, je volána explicitně metoda Dispose() nebo je použita konstrukce
using, která zaručuje volání Dispose() i při výjimkách.
Příklad:
class ResourceHolder : IDisposable
{
private bool disposed = false;
public void Dispose()
{
if (!disposed)
{
// Uvolnění zdrojů
disposed = true;
GC.SuppressFinalize(this);
}
}
~ResourceHolder()
{
Dispose();
}
}
// Použití
using (var resource = new ResourceHolder())
{
// práce s prostředkem
}
// Zde bude automaticky zavolána Dispose()