Полное имя .Net для типа переменной


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

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

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

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

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

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

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

3 ответа:

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

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

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

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

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

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