Junior — Middle
Aký je účel rozhrania IDisposable v .NET a ako ho použiť?
sobes.tech AI
Odpoveď od AI
Rozhranie IDisposable v .NET je určené na manuálne uvoľnenie neovládaných zdrojov (napríklad súborových deskriptorov, pripojení k databáze), keď objekt už nie je potrebný.
Použitie:
- Trieda implementuje IDisposable a prepíše metódu Dispose(), v ktorej uvoľňuje zdroje.
- V kóde, kde sa objekt používa, sa volá explicitne Dispose() alebo sa použije konštrukcia
using, ktorá zabezpečí volanie Dispose() aj pri výnimkách.
Príklad:
class ResourceHolder : IDisposable
{
private bool disposed = false;
public void Dispose()
{
if (!disposed)
{
// Uvoľnenie zdrojov
disposed = true;
GC.SuppressFinalize(this);
}
}
~ResourceHolder()
{
Dispose();
}
}
// Použitie
using (var resource = new ResourceHolder())
{
// práca so zdrojom
}
// Tu sa automaticky zavolá Dispose()