Например, мне редко нужно:
using System.Text;
но это всегда там по умолчанию. Я предполагаю, что приложение будет использовать больше памяти, если ваш код содержит ненужные директивы . Но есть ли что-то еще, что я должен знать?
Кроме того, имеет ли какое-либо значение, если одна и та же директива using используется только в одном файле против большинства / всех файлов?
Редактировать: Обратите внимание, что этот вопрос не о не связанной концепции, называемой оператором использования , предназначенной для того, чтобы помочь человеку управлять ресурсами, обеспечивая, чтобы при выходе объекта из области вызывался его метод IDisposable.Dispose . Смотрите Использование "использование" в C # .
источник
Там являются несколько причин для удаления неиспользуемого использования (S) / пространств имен, кроме кодирования предпочтения:
Что удаление неиспользуемых пространств имен не будет делать:
Получившаяся сборка является такой же, с неиспользованным использованием или без использования удаленных (-ых)
источник
using
директивы в.cs
файлах могут помешать вам удалить некоторые (иначе неиспользуемые) ссылки на сборки из вашего.csproj
проекта. Если у вас есть «решение» для многих проектов, ненужные ссылки между проектами заставят проекты компилироваться в определенном порядке, когда на самом деле они независимы и могут быть скомпилированы параллельно. Поэтому удалите неиспользуемыеusing
директивы, прежде чем проверять наличие неиспользуемых ссылок на проекты в решениях с несколькими проектами.Чистота кода является важным.
Начинаешь складываться ощущение, что код может не поддерживаться и находиться на пути браузера, когда видишь лишнее использование. По сути, когда я вижу какие-то неиспользуемые операторы, в глубине моего мозга поднимается маленький желтый флажок, говорящий мне «действовать осторожно». И чтение производственного кода никогда не должно вызывать у вас такого чувства.
Так что приберись. Не будь неряшливым. Вдохновлять уверенность. Сделайте ваш код красивым. Дайте другому разработчику это теплое нечеткое чувство.
источник
Organize Usings -> Remove and Sort
время от времени. Кстати, для меня два верхних варианта неOrganize Usings
имеют смысла. Я говорю о VS2013, кстати.Там нет конструкции IL, которая соответствует
using
. Таким образом,using
операторы не увеличивают объем памяти вашего приложения, поскольку для него нет ни кода, ни данных.Using
используется во время компиляции только для преобразования коротких имен типов в полные имена типов. Таким образом, единственный отрицательный эффект не нуженusing
может быть , - это немного замедлить время компиляции и занять немного больше памяти во время компиляции. Я не буду беспокоиться об этом, хотя.Таким образом, единственный реальный отрицательный эффект наличия
using
ненужных операторов - это intellisense, так как список потенциальных совпадений для завершения при вводе увеличивается.источник
Вы можете столкнуться с именами, если вы называете свои классы как (неиспользуемые) классы в пространстве имен. В случае System.Text у вас возникнет проблема, если вы определите класс с именем «Encoder».
В любом случае это обычно небольшая проблема, обнаруживаемая компилятором.
источник
Ваше приложение не будет использовать больше памяти. Компилятор должен найти классы, которые вы используете в файлах кода. Это действительно не больно, если не быть чистым.
источник
В основном это личные предпочтения. Я убираю их сам (Resharper делает хорошую работу, сообщая мне, когда нет необходимости использовать операторы).
Можно сказать, что это может уменьшить время на компиляцию, но с быстродействием компьютеров и компиляторов в наши дни это просто не окажет ощутимого влияния.
источник
Оставлять дополнительные
using
директивы нормально. Их удаление мало, но не так много. Например, это делает мои списки заполнения IntelliSense короче, и, следовательно, легче ориентироваться.Скомпилированные сборки не подвержены посторонним
using
директивы.Иногда я кладу их внутрь
#region
и оставляю свернутым; это делает просмотр файла немного чище. ИМО, это одно из немногих хороших применений#region
.источник
#region
», то есть вы имеете в виду, что использование#region
в большинстве случаев плохо?#region
это запах кода. Это говорит, что слишком много происходит в вашем классе.если вы хотите сохранить ваш код в чистоте, неиспользуемые
using
операторы должны быть удалены из файла. преимущества очевидны, когда вы работаете в совместной команде, которая должна понимать ваш код, думать, что весь ваш код должен быть сохранен, меньше кода = меньше работы, преимущества долгосрочные.источник
Они просто используются как ярлык. Например, вы должны будете писать: System.Int32 каждый раз, если у вас не было использования System; наверху.
Удаление неиспользуемых просто делает ваш код более чистым.
источник
Оператор using не позволяет вам квалифицировать используемые вами типы. Мне лично нравится убирать их. На самом деле это зависит от того, как используется метрика loc
источник
Наличие только тех пространств имен, которые вы на самом деле используете, позволяет вам сохранять документированный код.
Вы можете легко найти, какие части вашего кода вызывают друг друга с помощью любого инструмента поиска.
Если у вас есть неиспользуемые пространства имен, это ничего не значит при запуске поиска.
Сейчас я работаю над очисткой пространств имен, потому что меня постоянно спрашивают, какие части приложения так или иначе обращаются к одним и тем же данным.
Я знаю, какие части обращаются к данным каждый раз, потому что доступ к данным разделен пространствами имен, например, напрямую через базу данных и непосредственно через веб-сервис.
Я не могу придумать более простой способ сделать это все сразу.
Если вы просто хотите, чтобы ваш код был черным ящиком (для разработчиков), тогда да, это не имеет значения. Но если вам нужно поддерживать его со временем, это ценная документация, как и весь другой код.
источник
Оператор «using» не влияет на производительность, поскольку он является просто помощником в определении имен ваших идентификаторов. Поэтому вместо того, чтобы вводить System.IO.Path.Combine (...) , вы можете просто ввести Path.Combine (...), если вы используете System.IO .
источник
Не забывайте, что компилятор проделывает большую работу, чтобы оптимизировать все при сборке вашего проекта. Использование этого используется во многих местах, или я не должен делать другое после компиляции.
источник