Лучшие практики для соглашений о присвоении имен GUI C#? [закрытый]

Я не знаю ни о чем как единственная таблица, которая позволяет Вам сравнить всех их в на один взгляд (я не уверен, что такая таблица даже была бы выполнима).

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

Также справочное руководство по библиотеке STL в http://www.cplusplus.com/reference/stl/ обеспечивает требования сложности в соответствующих случаях.

69
задан ErikE 19 November 2015 в 23:53
поделиться

15 ответов

Я использую старый венгерский язык ... txt для TextBox, btn для кнопки, за которым следует обобщенное слово, затем более конкретное слово. т.е.:

btnUserEmail

Многие люди говорили что-то вроде «Ой, это так стар, звонит VB6!» Но в приложении winforms с пользовательским интерфейсом я могу находить и изменять вещи быстрее, потому что обычно первое, что вы знаете об элементе управления: это его тип, затем категория, а затем конкретизация. В то время как ребята из нового соглашения об именах застряли, пытаясь вспомнить, как они назвали это текстовое поле.

Исходная спецификация для элементов управления находится здесь (в архиве).

75
ответ дан 24 November 2019 в 13:45
поделиться

Моя собственная практика: Введите _contextDescriptionType. Например:

TextBox _searchValueTextBox

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

1
ответ дан 24 November 2019 в 13:45
поделиться

Что касается элементов, которые я не планирую использовать в своем коде, я просто позволяю дизайнеру сделать это за меня; если они становятся чем-то используемым в моем коде, они меняются на что-то значимое, и это оказывается descriptionType (nameTextBox). Именно так дизайнер создает их, если ему дано достаточно информации (проверьте пункты меню - «Выход» становится exitMenuItem).

1
ответ дан 24 November 2019 в 13:45
поделиться

Я использую венгерскую нотацию, что упрощает поиск элементов управления на больших страницах.

1
ответ дан 24 November 2019 в 13:45
поделиться

Я предпочитаю использовать c_typeName (обратите внимание, что тип и имя отличаются), например, c_tbUserEmail для текстового поля, в которое пользователь должен ввести свой адрес электронной почты. Я считаю это полезным, потому что, когда есть много элементов управления, может быть трудно найти их в списке intellisense длиной в несколько миль, поэтому, добавив префикс c_, я могу легко увидеть все элементы управления в этой форме.

2
ответ дан 24 November 2019 в 13:45
поделиться

Я называю весь свой интерфейс элементы TypeDescriptor. Следуя вашему примеру, TextBoxName .

2
ответ дан 24 November 2019 в 13:45
поделиться

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

Что касается того, какое соглашение использовать, я бы проголосовал за это:

TextBox name

Оно короткое и имеет семантическое значение в качестве идентификатора. Что касается типа идентификатора, я бы полагался на Visual Studio, чтобы сказать вам это, поскольку он, как правило, хорош в таких вещах.

3
ответ дан 24 November 2019 в 13:45
поделиться

Это не мое изобретение, но оно мне нравится:

TextBox uxName = new TextBox();
Label uxNameLabel = new Label();
Button uxAccept = new Button();

Я предпочитаю венгерскую нотацию, так как все мои элементы управления UI отображаются в одном блоке в Intelisense. UX для «Пользовательского опыта». Также хорошо, если вы измените элемент управления с текстового поля на поле со списком или что-то в этом роде, поскольку имя не изменится.

9
ответ дан 24 November 2019 в 13:45
поделиться

То же соглашение, что и все остальное в .NET: только описательное имя в верблюжьем регистре, необязательно сопровождаемое суффиксом, если вам нужно различать разные классы для одной и той же логической «вещи». Например:

string name; // a name
TextBox nameText; // the control used to edit the name
Label nameLabel; // the control used to label the edit control
List<string> nameList; // a list of names

и так далее до бесконечности. На самом деле не имеет значения, какие суффиксы являются суффиксами, если они последовательны и информативны.

12
ответ дан 24 November 2019 в 13:45
поделиться

Я использую:

TextBox nameTextBox;

Точно так же, как я бы использовал:

MailAddress homeAddress;

Причина этого в том, что в этих случаях "TextBox" и "Address" описывают что представляет собой объект, а не как он хранится или используется. Но в другом случае, например, при сохранении полного имени человека, я бы использовал:

string fullName;

Not:

string fullNameString;

Потому что "String" не описывает то, что представляет объект, а только то, как он хранится.

29
ответ дан 24 November 2019 в 13:45
поделиться

Я был работа с командой, которая в последнее время переходит с MFC (6.0 ...). Там у них будет что-то вроде

CString Name;
CEdit ctlName;

. Самый простой способ миграции - использовать что-то вроде

TextBox ctlName

It ' Достаточно напоминания о том, что переменная является элементом управления, а не значением элемента управления.

Я думаю, что включать тип как часть имени просто СТАРЫЙ.

- изменить - Еще одно преимущество состоит в том, что все элементы управления сгруппированы вместе при навигации. Если бы использовался фактический тип, элементы управления ComboBox были бы довольно далеко от элементов управления TextBox.

2
ответ дан 24 November 2019 в 13:45
поделиться

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

Я видел довольно ужасные вещи, когда txtName, NameTextBox, name и textBox1 использовались в одной и той же форме ... фу.

Там, где я работаю, у нас есть документ стандартов, который говорит нам, как это делать, где чтобы сделать это, и я думаю, что только 20% людей хотят попытаться приспособиться.

Я обычно что-то изменяю, если Fxcop кричит на меня.

http://en.wikipedia.org/wiki/Naming_conventions_ % 28programming% 29

Стили заглавных букв

Обратите внимание, что: Microsoft .NET рекомендует использовать UpperCamelCase (также известный как «стиль Pascal») для большинства идентификаторов. (Для параметров рекомендуется использовать lowerCamelCase).

4
ответ дан 24 November 2019 в 13:45
поделиться

Это безумие венгерского / VB6-именования должно прекратиться.

Если Microsoft действительно хотела, чтобы вы называли элементы управления в зависимости от их типа, то почему Visual Studio автоматически не добавляет 'txt 'или' btn 'при добавлении элемента управления в форму web / win?

2
ответ дан 24 November 2019 в 13:45
поделиться

I use the Hungation notation with one little difference.

I now work on a project that has quite a rich UI. So finding, with Intellisense, a button called, let's say, btnGetUsers its very easy.

Things get's complicated when the application is able to get users from different locations. That is different controls. So I started to name my controls after where they are located and still use the Hungarian notation.

As an example: tabSchedAddSchedTxbAdress means that txbAddress is a text box where an address can be inserted and is located on the Add Scheduling tab from the Scheduling Tab Control. This way I can find controls very easy and, when I type simply "btn" I don't get, at once, a lot of buttons from all over the user interface.

Of course this is just to help myself. I'm not aware of such a best practice. However it helps a lot.

Mosu'

3
ответ дан 24 November 2019 в 13:45
поделиться

У вас есть Руководство по именам от Microsoft. Я не все понял, но это хорошая отправная точка

.
1
ответ дан 24 November 2019 в 13:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: