Организация с помощью директив

Я использую ReSharper в течение последних месяцев, и, не считая рекламы, я не могу писать код без него. Так как мне нравится жить на грани «Что, черт возьми, пошло не так», я решил попытать счастья с последними ночными сборками ReSharper 4.5. Все хорошо.

Однако я заметил, что формат группировки директив using изменился, и я хотел знать, какой из них ближе к общим стандартам:

[СТАРЫЙ]

#region Using directives
using System.X;
using System.Y;
using System.Z;
using System.A;
#region
namespace X { ... }

[НОВЫЙ]

namespace X {
#region Using directives
using System.X;
using System.Y;
using System.Z;
using System.A;
#region
...
}

Имеет ли он какую-то особую цель, кроме ленивой загрузки ссылок? (Читал мнение Скотта Хансельмана по поводу этого @ http://www.hanselman.com/blog/BackToBasicsDoNamespaceUsingDirectivesAffectAssemblyLoading.aspx)

Спасибо;


person hb.    schedule 30.12.2008    source источник


Ответы (3)


Как продолжает Скотт в своем сообщении, между этими двумя случаями нет разницы во времени выполнения. Следовательно, он не служит для отложенной загрузки ссылок.

Если вы прочитаете комментарии в блоге Скотта до конца, вы также увидите, что разработчик, который передал этот слух Скотту (Майк Браун), говорит, что он только слышал об этом и не тестировал его сам.

Тем не менее, возможно, что то, где вы поместите директивы using, может иметь значение, выдав ошибку компилятора, если вы настроили псевдоним для типа внутри пространства имен, и у вас есть другой тип с тем же именем, определенным в пространстве имен. Но это, конечно, не разница во времени выполнения.

Наконец, я считаю, что в руководстве по кодированию MS сказано делать это так же, как и в ReSharper 4.5. Но глупо слепо следовать этому правилу «потому что М.С. так говорит», поскольку

  1. Было доказано, что это не приносит пользы.
  2. Обычный стиль кодирования вашей команды (или вашего) вполне может отличаться.
person Jon    schedule 30.12.2008
comment
Некоторые стандарты произвольны, чтобы сделать вещи согласованными. Использование чего-то вроде StyleCop помогает обеспечить соблюдение этих стандартов. Разрешить команде иметь разные стандарты (например, для каждого свои собственные) - это планы для того, чтобы следующая партия программистов превратилась в ад из-за несогласованности. - person Kenny Mann; 30.12.2008
comment
Конечно, я понимаю ценность стандартов кодирования (и ценность стандартов, не связанных с кодированием, тем более, поскольку я инженер). Однако есть некоторые вещи, которые не совсем подходят для стандартизации; например, где поставить фигурные скобки в C. ;-) - person Jon; 30.12.2008

Ну обычное дело субъективное. :) Но для меня обычным является "старый" способ.

person Jon    schedule 30.12.2008

Ой, как плохо. Я не нашел этого вопроса, когда искал. Я знаю, что это глупо, потому что MS так говорит, но каков в целом "обычный" подход к этому?

Я, как известно, часто использую очистку кода ReSharper, так что, честно говоря, мне просто интересно.

person hb.    schedule 30.12.2008