Подтвердить что ты не робот

Соглашение об именах для элементов управления

У Microsoft есть рекомендации по именованию на их веб-сайте (здесь). Кроме того, у меня есть Руководство по разработке рамочных проектов.

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

Например, кнопка, когда ее отбрасывают в форму, получает имя_файла + номер с верблюжьим именем по умолчанию, например "button1".

Это то, что я делаю: я удаляю номер и добавляю осмысленное описание после. Например, "buttonDelete" или "buttonSave".

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

Вы согласны?

4b9b3361

Ответ 1

У меня нет соглашения как такового, но я стараюсь быть очень широким с частью "типа" имени. например Кнопка, кнопка ссылки, кнопка изображения, как правило, называются "somethingButton". Комбинированные боксы, списки радиокнопки заканчиваются как "somethingSelector". Текстовые заметки и календари - "somethingInput". Таким образом, я получаю общее представление о том, какой контроль он не имеет привязки к фактической реализации. Если я решит заменить группу кнопок с раскрывающимся списком, тогда не нужно переименовывать!

Ответ 2

Предостережение. Ниже приведено более подробное описание WinForm/WPF. Патрик Петерс справедливо отметил, что при работе с элементами управления ASP.NET возникают проблемы с пропускной способностью/производительностью.

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

Как и другие автоответчики, я тоже использовал, чтобы тратить нетривиальное количество "фиксирующих" контрольных имен. Я бы сделал такие вещи, как "btnSave", "tbxName" (tbx для TextBox) и т.д. Однако, объясняя мою схему кому-то еще, я понял, насколько это произвольно. Является ли "cbx" ComboBox или флажок?

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

Я заменяю контрольный номер семантикой элемента управления. Таким образом, "button1" (дизайнер по умолчанию) будет "buttonSave", а "listBox3" станет "listBoxWidgets". Если будет только один элемент управления этого типа, я просто удалю номер: "errorProvider1" становится "errorProvider".

Итак, как это лучше?

  • Тщательно "фиксировать" имена переменных является пустой тратой времени, если ее внутренняя переменная
  • Ваша схема именования , вероятно, будет двусмысленной, если она сокращает целую кучу вещей (CheckBox и ComboBox)
  • Дизайнер дает хорошую, последовательную отправную точку, которая легко (и быстро) специализируется на
  • Длина имени переменной не имеет значения при использовании Intellisense
  • Группировать названия групп красиво и интуитивно (в Intellisense), если они предваряются их типом. Когда у вас есть 15 текстовых полей в форме, вы сначала помните, что хотите TextBox, введите "textBox", а затем выберите имя из списка.
  • Любой, кто не знаком с вашей "схемой", может сразу увидеть его и принять его быстрее, чем что-либо еще.
  • ОЧЕНЬ быстро, чтобы предоставить полезные управляющие имена... очень мало клавиатуры/мыши, чтобы сделать это... так высокая производительность с интуитивными результатами. Что не нравится?

PS. Это связано с вопросом Байшхеда, но, поскольку я могу нарисовать велосипед, я пошел вперед и присоединился к обсуждению.;)

Ответ 4

Я не делаю WinForms довольно долгое время, но то, что я сделал, было двумя вещами.

  • снимите флажок "сгенерировать элемент" (или, тем не менее, он называется) для таких вещей, как ярлыки и т.д. В основном я сохраняю как поля только те вещи, которые мне нужны.
  • для тех, кто мне нужен, укажите описательное имя. Если это необходимо, добавьте имя элемента управления (т.е. saveButton). Если мне не хочется добавлять имя элемента управления, добавьте любое значение, я бы не добавил 'Button' и оставил имя просто как "сохранить".

В основном большую часть времени я вообще не создавал элемент для кнопки "Сохранить". (Если у вас есть логика сохранения, у вас все еще может быть только обработчик события OnSaving, подписанный на кнопку Click event).

https://msdn.microsoft.com/en-us/library/ms233630(v=vs.110).aspx

Ответ 5

Да, измените эти имена

Для меня:

  • Button btnDescription

  • TextBox txtDescription

  • ComboBox cboDescription

и т.д...

Ответ 6

Программирование GUI получает короткую палочку, когда речь идет о конвенциях всех видов. См. Мой ответ на другой вопрос для рекомендаций, которые я использую для присвоения имен.

Ответ 7

Да, вам нужны значащие идентификаторы для любой переменной - управления или нет - имена по умолчанию - только потому, что ваша среда IDE ничего не знает о вашем проблемном домене и поэтому не всегда может "угадать" лучшее имя.

Ответ 8

Я, вероятно, один из немногих людей, которые все еще используют венгерскую нотацию. Я знаю, что аргумент, что среда IDE может указать вам тип переменной, но это не помогает мне, когда я кодирую Notepad ++ или смотрю на распечатку.... в любом случае я использую "btnSave", "cbOptions", "txtFirstName", "lblTitle", "ddlCardType" и т.д. Мне просто нравится смотреть на код и знать, на что я смотрю, не ища объявления или зависания над переменной, чтобы получить его тип данных из IDE.

Ответ 9

Да, я полностью согласен (но переименовываю его в ButtonDelete), поэтому имена нижнего регистра для переменных в моем случае:)

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

Ответ 10

Я не уверен, но я думаю, что управление именами в Windows Forms является одним из единственных мест, где я могу увидеть использование для Венгерская нотация. Поэтому я думаю, что ты хорош.

Ответ 11

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

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

Ответ 12

Это - это то, что мы используем

Короче говоря, мы ограничиваем элементы управления аббревиатурой элемента управления. то есть

Buttons = btnDelete, btnSubmit, btnReturn

Текстовые поля = txtUsername, txtPassword и т.д.

таким образом, набрав аббревиатуру, вы получите все аналогичные элементы управления к моменту окончания ввода аббревиатуры, т.е. тип btn и intellisense покажет все кнопки, которые вы добавили до сих пор.