.Net Полное квалифицированное имя для переменного типа

StackOverflow https://stackoverflow.com/questions/3505488

  •  29-09-2019
  •  | 
  •  

Вопрос

Где я работаю, я часто вижу такой код:

public void Test(Models.User.UserInfo userInfo, Models.User.UserParameter param)
   { ... }

Лично я предпочитаю видеть что-то в этом роде:

public void Test(UserInfo userInfo, UserParameter param) { ... }

И иметь импорт сверху.

Что ты думаешь об этом ? Какая лучшая практика? Что про и минусы обоих? Как я мог убедить своих товарищей по команде?

Я нахожу второй вариант быть более понятным.

Это было полезно?

Решение

Определенно используйте using Директива, ИМО. Как правило, это просто код, который был автогенерирован Visual Studio. Я не видел никого намеренно написать код, как это вручную. ИМО, стоит убедиться, что весь код, который люди будут читать выглядит Как и люди писали это - поэтому добавив Директива по использованию и уменьшаю имена здесь. Это делает его намного легче читать - особенно когда пространства имен длились долго.

Другие советы

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

Но это также зависит от длины полного имени. Это все о написании красивых, легко читать код.

Во всех, кроме нескольких обстоятельств, я бы сказал, import или using Пространства имен - лучшая практика. Это имеет дополнительное преимущество ранней деградации: компилятор будет жаловаться, если он не сможет найти пространство имен.

Среди нескольких обстоятельств, где необходимо полностью квалифицированное имя (чтобы быть более правильным: это не от корки до корки Квалифицированные, вы не указываете версию или ключ) - это то, где имена столкновения произойдут (т. Е. Когда два пространства имен происходят, чтобы иметь то же имя, я вижу, что это часто происходит с Util Классы, которые многие поставщики добавляют в их libs) (обратите внимание, что вы можете использовать имена классов псевдоним using). Или когда вам нужно квалифицировать имя как строку, но это еще один корпус использования (т. Е. С отражением). Изредка, при отладке, это помогает использовать FQN, потому что отладчик не позволяет добавлять using Директива.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top