Sobes.tech
Junior — Middle

Qual è lo scopo dell'interfaccia IDisposable in .NET e come si utilizza?

sobes.tech AI

Risposta dell'AI

L'interfaccia IDisposable in .NET è progettata per liberare manualmente risorse non gestite (ad esempio, descrittori di file, connessioni al database) quando un oggetto non è più necessario.

Utilizzo:

  • La classe implementa IDisposable e sovrascrive il metodo Dispose(), nel quale libera le risorse.
  • Nel codice in cui si utilizza l'oggetto, si chiama esplicitamente Dispose() o si utilizza la costruzione using, che garantisce la chiamata a Dispose() anche in caso di eccezioni.

Esempio:

class ResourceHolder : IDisposable
{
    private bool disposed = false;
    public void Dispose()
    {
        if (!disposed)
        {
            // Liberare risorse
            disposed = true;
            GC.SuppressFinalize(this);
        }
    }

    ~ResourceHolder()
    {
        Dispose();
    }
}

// Utilizzo
using (var resource = new ResourceHolder())
{
    // lavoro con la risorsa
}
// Qui viene chiamato automaticamente Dispose()