Если он реализует IDisposable, он либо в настоящее время содержит ресурсы для удаления, либо может в будущем.Если это одноразовый, вы должны утилизировать его.Это не для вас, чтобы понять его внутренности - только чтобы понять его контракт и соблюдать его.Как правило, люди не делают вещи церемонно - «использование» - это крутой синтаксический сахар, но недостаточно крутое, чтобы начать разбрасывать IDisposable вокруг классов, у которых нет ресурсов для распоряжения:)
Кроме того, IDisposable не делаетне обязательно означает "неуправляемые" ресурсы.Это означает, что есть ресурсы (такие как файловые дескрипторы, сетевые подключения и т. Д.), Которые не являются объектами, которые собирают мусор (память).Различие состоит в том, чтобы убирать что-то, что не собрано - не неуправляемо. Просто так получается, что часто многие из этих ресурсов поддерживаются неуправляемыми ресурсами ОС.
РЕДАКТИРОВАТЬ:
Например, допустим, я создал полностью управляемый объект, который получилнекоторые другие объекты из пула (кэша) по требованию, и когда вы закончите использовать его, я хочу, чтобы они помещали эти объекты обратно в общий пул (не освобождали - явный вызов для добавления чего-либо в пул. Ничего неуправляемого здесь, кромеЯ мог бы извлекать объекты из пула по требованию, а при утилизации я мог бы вернуть их (Pool.Add) для использования другими. Вы, потребитель, просто «используете» мой объект и знаете, что он будет очищен при утилизации. Явное удалениенужно, потому что мы не должны ждать завершения (это может случиться намного позже или не наступить вовсе) -