Оператор using
может ухудшить производительность в том смысле, что для его выполнения потребуется больше времени, но это не должно беспокоить вас в подобных случаях. Если тип реализует IDisposable
, он действительно должен быть заключен в оператор using
, чтобы он мог очистить после себя.
Этот код очистки будет выполняться дольше, чем никакой код очистки, конечно, поэтому я и говорю, что оператор using
будет выполняться дольше. Но это не значит, что у вас не должно быть заявления using
. Я думаю, что вы должны использовать оператор using
, хотя для его выполнения может потребоваться больше времени.
Я думаю, что я пытаюсь сказать, что вы сравниваете яблоки с апельсинами здесь, поскольку сравнение производительности имеет смысл только тогда, когда сравниваемый код создает идентичные выходные данные и идентичные побочные эффекты. Ваши примеры не так, что я, почему я не думаю, что это проблема производительности.
Лучшая практика в этой ситуации - использовать оператор using
для типов, которые реализуют IDisposable
, независимо от того, что оператор using
сделает метод более длинным. Если вам нужно знать, как намного дольше он будет работать, вам следует использовать профилировщик, чтобы определить, создает ли данный код узкое место.