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

Именование Конвенции в С#

Что такое общепринятое соглашение об именах для С#? (функции, классы, параметры, локальные переменные, пространства имен и т.д.)

4b9b3361

Ответ 1

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

  • Классы/Структуры: PascalCase (WebRequest)
  • Интерфейсы: PascalCase с префиксом я (IDisposable)
  • Методы: PascalCase (ToUpper)
  • Свойства: PascalCase (Length)
  • События: PascalCase (Click)
  • Пространства имен: PascalCase (System.Collections; необычно иметь два слова в одной части)
  • Непостоянные переменные, включая параметры: camelCased (keySelector)
  • Константы: PascalCase (Int32.MaxValue)
  • Перечисления: PascalCase, единственное значение для не-флагов и множественное число для флагов (HttpStatusCode, BindingFlags)
  • Атрибуты: PascalCase с суффиксом "Attribute" (ThreadStaticAttribute)

Частные имена зависят от вас, но я склонен следовать тем же соглашениям, что и ко всему остальному. Венгерская нотация (в стиле Win32) обескуражена, хотя многие места используют "m_" или "_" в качестве префикса для переменных экземпляра.

Ответ 2

Стандарт .NET от Microsoft должен использовать Pascal Case для пространств имен, общедоступных и защищенных членов (в основном что-либо видимое для других классов). Для частных членов и локальных переменных существует гораздо более широкое место, чтобы просто делать то, что вам и вашей команде наиболее комфортно.

Ответ 3

Рекомендации по устранению неисправностей предлагают


  • Типы и пространства имен UpperCamelCase
  • Интерфейсы IUpperCamelCase Параметры типа TUpperCamelCase
  • Свойства и события методов UpperCamelCase Локальный
  • переменные lowerCamelCase Локальные константы lowerCamelCase
  • Параметры lowerCamelCase Поля (не частные) UpperCamelCase
  • Поля экземпляра (частные) _lowerCamelCase
  • Статическое поле (личное) _lowerCamelCase
  • Постоянные поля (не частные) UpperCamelCase
  • Постоянные поля (частные) UpperCamelCase
  • Статические поля readonly (не частные) UpperCamelCase
  • Статические поля readonly (частные) UpperCamelCase
  • Члены Enum UpperCamelCase
  • Все остальные объекты UpperCamelCase

Ответ 4

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

Посмотрите справочный материал для .NET Framework на примеры того, как "вписаться" (http://msdn.microsoft.com/en-us/library/ms229335.aspx).

Джон Скит дал вам ссылку на хорошую запись Microsoft: http://msdn.microsoft.com/en-us/library/ms229042.aspx

Вы также можете использовать автономный Microsoft FxCop (или Code Analysis, если у вас есть Team Edition) http://www.microsoft.com/downloads/details.aspx?FamilyID=9aeaa970-f281-4fb0-aba1-d59d7ed09772&DisplayLang=en, чтобы проверить, что именование конвенции были соблюдены. Он имеет встроенные правила для соглашений Microsoft, что является еще одной причиной, по которой вы должны их использовать!

Ответ 6

Я бы посмотрел на тонкую книгу под названием " Элементы стиля С#" Болдуина, Грея и Misfeldt. Синяя книга охватывает соглашения об именах и многие другие аспекты создания последовательного, чистого и удобочитаемого кода.