Называете ли вы элементы управления в формах, используя то же соглашение, что и закрытая переменная?

StackOverflow https://stackoverflow.com/questions/9433

Вопрос

По какой-то причине я никогда не вижу, как это делается.Есть ли причина, почему бы и нет?Например, мне нравится _blah для закрытых переменных, и, по крайней мере, в Windows Forms элементы управления по умолчанию являются закрытыми переменными-членами, но я не могу вспомнить, чтобы когда-либо видел, чтобы они назывались таким образом.В случае, когда я создаю / сохраняю объекты управления в локальных переменных внутри функции-члена, особенно полезно иметь некоторое визуальное различие.

Это было полезно?

Решение

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

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

  • текстовое поле
  • метка, указывающая на то, что текстовое поле предназначено для дат рождения
  • элемент управления календарем, который позволит вам выбрать дату

Для этого у меня был бы lblBirthDate для метки, txtBirthDate для текстового поля и calBirthDate для элемента управления календарем.

Однако мне интересно услышать, как другие это делают.:)

Другие советы

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

Я лично ставлю перед частными объектами префикс _

Элементы управления формой всегда имеют префикс типа, Только причина, по которой я это делаю, кроется в intellisense.С большими формами становится проще "получить значение метки", просто набрав lbl и выбираем его из списка ^_^ Он также следует за логика , изложенная Джоном Лимджапом.

Хотя это повторяет Рекомендации Microsoft по кодированию .NET, ознакомьтесь с ними здесь.

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

Однако элементы управления - это совсем другая история, что касается именования.Я думаю, что область видимости предполагается, и добавление нескольких букв для указания типа (например, txtMyGroovyTextbox) имеет больше смысла по той же причине;элементы управления сгруппированы в Intellisense по типу.

Но на работе это полностью VB, и мы делаем mPrivateMember .Я думаю, что буква "м" может означать "модуль".

Я пришел через VB и сохранил префикс типа элемента управления для элементов управления.Мои частные участники используют нижний регистр camel (firstLetterLowercase), в то время как публичные участники используют Pascal / верхний регистр camel (FirstLetterUppercase).

Если существует слишком много идентификаторов / членов / локальных объектов, чтобы иметь 90%-ную вероятность запомнить / угадать, как это называется, вероятно, необходимо больше абстракции.

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

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

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

Люк,

Я использую _ prefix для объектов моей библиотеки классов.Я использую венгерскую нотацию исключительно для пользовательского интерфейса по указанной мной причине.

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

Я нахожусь в лагере заглавных / строчных букв ("title" является частным, "Title" - общедоступным), смешанных с "венгерской" нотацией для компонентов пользовательского интерфейса (tbTextbox, lblLabel и т.д.), И я рад, что у нас в команде нет разработчиков Visual Basic, не чувствительных к регистру :-)

Мне не нравится подчеркивание, потому что оно выглядит довольно уродливо, но я должен признать, что у него есть преимущество (или недостаток, в зависимости от вашей точки зрения):В отладчике все закрытые переменные будут находиться сверху из-за того, что _ находится поверх алфавита.Но опять же, я предпочитаю, чтобы моя пара private / public была вместе, потому что это упрощает отладку логики getter / setter, поскольку вы видите частное и общедоступное свойство рядом друг с другом,

Я записываю имя столбца базы данных, который они представляют.

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

Похоже, это более или менее общепринятое соглашение во всем .Сетевое сообщество.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top