Как вы называете свои элементы управления GUI?

12

Обычно считается плохой практикой использовать венгерскую нотацию , но обычно встречаются элементы управления GUI с именами userNameTextBoxи userNameLabel.

Вы помещаете тип управления в его названии? Разве это не венгерская нотация?

Джадер Диас
источник
в целом у шахты нет имен, так как они не нужны в WPF
jk.

Ответы:

12

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

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

Как и во всем коде, последовательность и самооценка являются ключевыми. Если вы и ваша команда согласны с тем, как помечены различные элементы управления GUI и какие элементы нуждаются в ярлыках, у вас все будет в порядке :)

phareim
источник
8

На самом деле я использую венгерскую нотацию, только для графического управления. Я использую что-то вроде lblText, rbGroup1, lvTable и т. Д. Для меток, переключателей и списков.

Они все равно никогда не меняются, и понятно, какая переменная является элементом управления графическим интерфейсом, а какая нет.

Однако, поскольку я использую WPF с возможностями связывания, в действительности больше нет необходимости называть их вообще, поскольку он связан со свойством C #.

Кстати, не делайте ошибку, чтобы вызвать элемент управления lvListViewPersons, что я иногда вижу. Если переменная имеет префикс lv, вы можете видеть, что это уже список.

Мишель Кейзерс
источник
3
Согласитесь с этим. Элементы управления графическим интерфейсом - единственное место, где венгерская нотация не является кардинальным грехом (ИМО, конечно)
Уэйн Молина
4

Наша команда использует венгерскую нотацию для элементов управления графическим интерфейсом, а не для остальной части кода.

Типичный пример, метка, за которой следует текстовое поле:

  • lblFirstName
  • txtFirstName

Кроме того, это облегчает поиск вашего текстового поля, просто наберите «txt» и intellisense сделает все остальное.

Карра
источник
1

Я использую венгерскую нотацию для элементов GUI. Это действительно боль , когда вы закрываете QtDesigner, откройте Visual Studio и когда вы хотите установить текст на кнопке , если у вас есть текстовое поле с именем username, passwordи т.д. При использовании Qt, это не большая проблема, потому что все элементы GUI завернуты внутри uiобъекта ( ui.username), но когда я использую Windows Forms, текстовое поле с именем username только увеличивает пространство имен.

В этом случае txtUsername, btnLogin, lblStatusи т.д., явно лучшие варианты.

Неманья Борич
источник
1

Я избегаю использования венгерской нотации для элементов управления GUI - я бы не стал называть такой элемент управления, как `lblFirstName ', потому что мне все равно, что это метка - с точки зрения привязки данных это просто что-то связываемое.

Для элементов управления, которым нужно имя, я обычно добавляю префикс ux«пользовательский опыт». Это дает понять, что элемент предназначен только для взаимодействия с пользователем. Например, у моей модели представления может быть вызвано свойство, FirstNameа у представления может быть вызван элемент управления uxFirstName. Это дает дополнительное преимущество: все мои именованные элементы управления хорошо сгруппированы в моей IDE.

MattDavey
источник
3
Не является ли uxпрефикс венгерской нотацией? Может быть, другой вид (я забыл имена двух), который указывает значение, а не тип, но все еще является формой венгерского ;-)
Уэйн Молина
Я думаю, что вы имеете в виду, apps hungarianа не systems hungarian. Венгерские приложения не считаются столь же вредными, как системы, но я думаю, что значение «ux» может быть слишком высоким, чтобы даже считаться приложениями. Я думаю, вы могли бы назвать это слой венгерский или что-то :)
MattDavey
1

Я знаю, что люди в целом не переносят венгерскую нотацию, но я все еще нахожу ее очень полезной во многих местах. Для GUI я использую как минимум префикс wnd.

Проблема неиспользования венгерской нотации проста: как только вы покидаете гладкие воды MSVS, навигация совершает погружение в нос. Вы видите какой-то вид, SomeValue = SomeOtherValueи у вас нет ни малейшего понятия, что происходит, если вы не посмотрите на каждую чертову вещь. Через grep или старый добрый поиск, который обычно убивает производительность, IDE, отличные от QT и MSVS, действительно плохо справляются с поиском.

кодировщик
источник