- IDisposable is an interface which provides a mechanism for releasing unmanaged resources.
- It contains a single method called Dispose() which is one of the ways developers can use to release unmanaged resources.
- the Garbage Collector provided by the CLR can only maintain and release managed code, but it can’t act upon unmanaged code such as Database connections, Sockets etc.
- In such cases the developers must ensure the resources are properly released once their role is complete.
- By placing such code in the Dispose method developers can ensure that the code is released once the object life completes.
- Classes which implement IDisposable implement Dispose method and are instantiated inside a using block which calls the Dispose method once the scope is over.
// Provides a mechanism for releasing unmanaged resources.
public interface IDisposable
// Performs application-defined tasks associated with freeing, releasing, or resetting
// unmanaged resources.