Junior — Middle
Qual é a finalidade da interface IDisposable no .NET e como usá-la?
sobes.tech IA
Resposta da IA
A interface IDisposable no .NET destina-se a libertar manualmente recursos não geridos (por exemplo, descritores de ficheiros, ligações a bases de dados) quando o objeto já não é necessário.
Utilização:
- A classe implementa IDisposable e substitui o método Dispose(), no qual liberta os recursos.
- No código onde o objeto é utilizado, Dispose() é chamado explicitamente ou é utilizada a construção
using, que garante a chamada a Dispose() mesmo em caso de exceções.
Exemplo:
class ResourceHolder : IDisposable
{
private bool disposed = false;
public void Dispose()
{
if (!disposed)
{
// Libertar recursos
disposed = true;
GC.SuppressFinalize(this);
}
}
~ResourceHolder()
{
Dispose();
}
}
// Utilização
using (var resource = new ResourceHolder())
{
// trabalho com o recurso
}
// Aqui, Dispose() é chamado automaticamente