Соглашение об именах для элементов управления
У Microsoft есть рекомендации по именованию на их веб-сайте (здесь). Кроме того, у меня есть Руководство по разработке рамочных проектов.
То, что я не смог найти, - это руководство по управлению именованием.
Например, кнопка, когда ее отбрасывают в форму, получает имя_файла + номер с верблюжьим именем по умолчанию, например "button1".
Это то, что я делаю: я удаляю номер и добавляю осмысленное описание после. Например, "buttonDelete" или "buttonSave".
Таким образом, вам не нужно поддерживать большой список элементов управления и их сокращенных имен в руководстве.
Вы согласны?
Ответы
Ответ 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. Это связано с вопросом Байшхеда, но, поскольку я могу нарисовать велосипед, я пошел вперед и присоединился к обсуждению.;)
Ответ 3
Вот некоторые общие:
frm Form
mnu Form menu
cmd Command button
chk Check button
opt Radio button
lbl Text label
txt Text edit box
pb Picture box
pic Picture
lst List box
cbo Combo box
tmr Timer
Более длинный список находится в INFO: Соглашения об именах венгерских обозначений объектов для VB.
Ответ 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 покажет все кнопки, которые вы добавили до сих пор.