Соглашения о псевдонимах типа/пространства имен в С#
Существуют ли какие-либо установленные соглашения об именах или кодировании для определения пространства имен или псевдонимы типов на С#?
Для тех, кто не знает, язык С# имеет функцию, в которой псевдонимы могут быть определены локально для файла для пространств имен и типов. Это может быть полезно при конфликтах имен с сторонними библиотеками, а также для сокращения имен типов в вашем коде. Ниже приведен пример того, как он выглядит.
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;