Если ваш код создает объект определенного явного конкретного типа, который задокументирован как реализующий IDisposable.Dispose как no-op, то можно безопасно обойтись без вызова Dispose напрямуюили косвенно.Если Dispose действительно ничего не делает, то удаление или не удаление ничего не повлияет.
С другой стороны, если ваш код использует что-то вроде фабричного метода для создания объекта наследуемого типа, который реализует IDisposable, илиесли вашему коду принадлежит право собственности на такой объект, вы должны его утилизировать.Даже если вы ожидаете получить объект класса, который не нуждается в Disposed, нет никакого способа убедиться, что ваш класс вместо этого не получит производный тип, который действительно должен быть Disposed.Обратите внимание, что в общем случае вызов Dispose для класса, который реализует IDispsoable.Dispose в качестве no-op, будет очень быстрым;это часто более эффективно для классов, которые могут или не могут нуждаться в IDisposable для реализации Dispose как запрета, и чтобы пользователи класса вызывали Dispose безоговорочно, чем требовать, чтобы пользователь класса проверял, является ли объект IDisposable, и Disposeэто если так.