C# Interview Question #73

What is IDisposable in C#?

Memory Management & Modern C# Mid-Level Intermediate

Quick Interview Answer

IDisposable defines a Dispose method for deterministic cleanup of resources. It is commonly used by types that own unmanaged resources or other disposable resources.

Detailed Explanation

IDisposable defines a Dispose method for deterministic cleanup of resources. It is commonly used by types that own unmanaged resources or other disposable resources.

Garbage collection manages memory, but it does not guarantee timely release of external resources. Dispose allows cleanup to happen at a known point.

Consumers should normally use using or await using so disposal occurs even when an exception is thrown.

Code Example

public sealed class ResourceHolder : IDisposable
{
    public void Dispose()
    {
        // Release owned resources.
    }
}

using var resource = new ResourceHolder();