Неиспользуемые директивы пространства имен могут вызвать какие-либо изменения?

Я уверен, что коды будут давать тот же результат, но CLR будет учитывать неиспользуемые директивы пространства имен при распределении памяти? Другой вопрос может заключаться в том, что CLR учитывает неиспользуемые блоки кода при выделении памяти?

4 голоса | спросил Freshblood 23 J000000Friday10 2010, 13:09:45

2 ответа


0

Во время выполнения не будет иметь значения, используете ли вы в своем коде неиспользуемые директивы using.

Директива using предназначена для удобства записи

using System.IO;
[...]
string path = Path.GetDirectoryName(filename);

вместо написания полного имени

string path = System.IO.Path.GetDirectoryName(filename);

каждый раз, когда вы хотите использовать тип из пространства имен System.IO. Директива сообщает компилятору, какие пространства имен следует искать для типов, которые используются в файле. Затем компилятор фактически заменит первый пример на второй, то есть код IL в сборке всегда будет использовать полностью определенные имена типов. Неиспользуемые пространства имен не появятся в скомпилированной сборке.

Однако есть причины держать чистый список импортируемых пространств имен. Джон Феминелла заявил в связанном вопросе :

  

Есть несколько причин, по которым вы хотите   убери их.

     
  • Это бессмысленно. Они не добавляют никакой ценности.
  •   
  • Это сбивает с толку. Что используется из этого пространства имен?
  •   
  • Если вы этого не сделаете, то постепенно будете накапливать бессмысленно, используя   заявления, как ваш код меняется   время.
  •   
  • Статический анализ медленнее.
  •   
  • Код компилируется быстрее.
  •   
ответил Dirk Vollmar 23 J000000Friday10 2010, 13:28:15
0

Чтобы добавить ответ 0xA3: директивы using существуют только в исходном коде C #. Как и комментарии, они не существуют в двоичном файле сборки.

ответил Tim Robinson 23 J000000Friday10 2010, 13:33:08

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132