Соглашения о псевдонимах типа/пространства имен в С#

Существуют ли какие-либо установленные соглашения об именах или кодировании для определения пространства имен или псевдонимы типов на С#?

Для тех, кто не знает, язык С# имеет функцию, в которой псевдонимы могут быть определены локально для файла для пространств имен и типов. Это может быть полезно при конфликтах имен с сторонними библиотеками, а также для сокращения имен типов в вашем коде. Ниже приведен пример того, как он выглядит.

using Forms = System.Windows.Forms;

Большинство примеров, которые я видел по всему Интернету, как правило, используют в качестве псевдонимов Forms в качестве псевдонимов псевдонимы заглавных букв как псевдоним. В некоторых местах, включая официальную страницу MSDN

Ответы

Ответ 1

Псевдонимы пространства имен не являются общей чертой большинства баз кода - последнее место, когда я использовал его, старший разработчик был незнаком с ним, хотя работал с С# в течение многих лет.

Поскольку это редко, соглашения для него не разработаны.

Я бы сказал, что если вы собираетесь использовать псевдонимы, обсудите это с вашей командой, чтобы создать свою собственную конвенцию.

Несколько различных способов использования псевдонимов:

  • Акроним пространства имен. Обычно капители в пространстве имен.
  • Самый конец пространства имен - если множественное де-плюрализовано.
  • Описательное короткое имя.

Ответ 2

Я использовал бы только псевдонимы в случае конфликта пространства имен (т.е. только если бы мне пришлось).

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

Ответ 3

Лично я бы использовал его только для чистки intelli-sense.

using StringBuilder = System.Text.StringBuilder;

Если вы переименуете типы, вы откроете окно Pandora для программистов на обслуживание.

Ответ 4

Два наиболее распространенных случая для псевдонимов пространства имен:

  • Я видел это, и я использую его (как тренд).
  • я код порта с другого языка

В первом случае комментариев нет. Для второго примера хорошим примером является перенос кода из C и использование псевдонимов пространства имен для практичности, например:

using i64 = System.Int64;
using u8 = System.Byte;
using u32 = System.UInt32;
using u64 = System.UInt64;

Даже если вы считаете вышеуказанные псевдонимы ленивым программированием, они помогают избежать ошибок.

Ответ 5

Я думаю, что люди, которые склонны не использовать их вообще , дают ответ, который вы просили. Это соглашение . Это не означает, что это не может быть полезно, но не использовать его остается нормой.

Ответ 6

Вы можете принять соглашение, чтобы использовать их для абстракции.

using Id = System.Int32;

Таким образом, вы легко можете просто заменить эту строку

using Id = System.Guid;

в какой-то момент, и никакой другой код не должен измениться (если вы не просмотрели абстракцию, чтобы создавать зависимости от фактического типа...)

Ответ 7

Я обычно использую их только тогда, когда мне нужно использовать два одинаково названных класса в разных пространствах имен и не хочу полностью указывать тип в коде:

using xItem = My.Project.NameSpace.Item;
using yItem = Your.ThirdParty.Framework.Item;