Middle+
What is IDisposable used for?
sobes.tech AI
Answer from AI
The IDisposable interface in C# is used for releasing unmanaged resources, such as file handles, network connections, or COM objects, when they are no longer needed.
By implementing IDisposable, a class provides a Dispose() method that is called for explicit resource release, preventing memory leaks and other issues.
Example usage:
public class ResourceHolder : IDisposable
{
private bool disposed = false;
private SafeHandle resource = new SafeFileHandle(IntPtr.Zero, true);
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (!disposed)
{
if (disposing)
{
// Release managed resources
resource?.Dispose();
}
// Release unmanaged resources
disposed = true;
}
}
~ResourceHolder()
{
Dispose(false);
}
}
This approach guarantees proper release of resources both when Dispose() is called explicitly and during garbage collection.