Sobes.tech
Junior — Middle

¿En qué consiste la finalidad de la interfaz IDisposable en .NET y cómo se utiliza?

sobes.tech AI

Respuesta de la IA

La interfaz IDisposable en .NET está diseñada para liberar manualmente recursos no administrados (por ejemplo, descriptores de archivos, conexiones a bases de datos) cuando un objeto ya no es necesario.

Uso:

  • La clase implementa IDisposable y sobrescribe el método Dispose(), en el cual libera los recursos.
  • En el código donde se usa el objeto, se llama explícitamente a Dispose() o se utiliza la construcción using, que garantiza la llamada a Dispose() incluso en caso de excepciones.

Ejemplo:

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

    ~ResourceHolder()
    {
        Dispose();
    }
}

// Uso
using (var resource = new ResourceHolder())
{
    // trabajo con el recurso
}
// Aquí se llamará automáticamente a Dispose()