Junior — Middle
Můžete vysvětlit účel rozhraní IDisposable a jak jej používat při správě zdrojů?
sobes.tech AI
Odpověď od AI
Rozhraní IDisposable v jazyce C# je určeno k uvolnění neřízených zdrojů, jako jsou souborové deskriptory, připojení k databázím, sokety atd. Obsahuje metodu Dispose(), která se volá pro explicitní uvolnění zdrojů.
Použití IDisposable umožňuje kontrolovat dobu uvolnění zdrojů, což je důležité pro prevenci úniků.
Příklad použití:
class ResourceHolder : IDisposable
{
private bool disposed = false;
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (!disposed)
{
if (disposing)
{
// Uvolnění řízených zdrojů
}
// Uvolnění neřízených zdrojů
disposed = true;
}
}
~ResourceHolder()
{
Dispose(false);
}
}
Také se často používá konstrukce using, která automaticky volá Dispose():
using(var resource = new ResourceHolder())
{
// práce s prostředkem
}
// Zde se automaticky volá Dispose()
Tímto způsobem IDisposable pomáhá správně spravovat zdroje a předcházet jejich únikům.