Как применять IDisposable и финализаторы: 3 простых правила
Документация Microsoft о применении IDisposable довольно запутанная. На самом деле она упрощается до трех простых правил.
Правило первое: не применять (до тех пор, пока это действительно не понадобится)
Реализуя интерфейс IDisposable, вы не создаете деструктор. Помните, что в среде .NET есть сборщик мусора, который работает достаточно хорошо, чтобы не присваивать null многочисленным переменным.
Существует только две ситуации, когда необходимо реализовывать IDisposable. Посмотрите на класс и определите, нужен ли вам этот интерфейс:
* В классе есть неуправляемые ресурсы
* В классе есть управляемые (IDisposable) ресурсы
Обратите внимание, что ресурсы должны освобождать только те классы, которым эти ресурсы принадлежат. В частности, класс может иметь ссылку на общий ресурс — в этом случае вы не должны освобождать его, поскольку другие классы могут продолжать использовать этот ресурс.
Read more: habrahabr.ru