Частная статическая только для чтения капитализация поля - PullRequest
32 голосов
/ 02 января 2011

дело Паскаля или верблюда?

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

Так что насчет приватного статического чтения только? Логика говорит, что дело верблюда ... но приватное статическое чтение только функционально похоже на const ... верно?

Ответы [ 5 ]

19 голосов
/ 02 января 2011

Использовать регистр Паскаля в именах полей ...

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

MSDN-имена членов типа

Статическое поле только для чтения = Паскаль

Официальное соглашение об именах MSDN

Общие правила:

Использовать Pascal корпус для для всех пользователей имена членов, типов и пространств имен состоящий из нескольких слов.

Обратите внимание, что это правило не распространяется на поля экземпляра. По причинам, которые подробно описано в разделе «Дизайн членов» Руководство, Вы не должны использовать публичные Поля экземпляра.

Использовать верблюжий корпус для параметра имена.

Полный список:

IDENTIFIER             CASE        EXAMPLE
----------------------+-----------+---------------
Class                  Pascal      AppDomain 
Enumeration types      Pascal      ErrorLevel 
Enumeration values     Pascal      FatalError 
Event                  Pascal      ValueChanged 
Exception class        Pascal      WebException 
Read-only static field Pascal      RedValue 
Interface              Pascal      IDisposable 
Method                 Pascal      ToString 
Namespace              Pascal      System.Drawing 
Parameter              Camel       typeName 
Property               Pascal      BackColor 

MSDN Официальное соглашение об именах

Также рассмотрим

9 голосов
/ 14 декабря 2012

Я получил предупреждение в StyleCop за:

    private readonly Color LabelBackColor = Color.Black;

Предупреждение 364 SA1306: CSharp.Naming: Имена переменных и имена частных полей должны начинаться со строчной буквы: LabelBackColor.

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

9 голосов
/ 02 января 2011

Нет, private static readonly вовсе не само по себе похоже на const.Подумайте:

private static readonly IList<int> foo = new List<int>();

Вы все еще можете сделать foo.Add(0);.Такие поля похожи на const, только когда сам объект, как и любые объекты, на которые имеются ссылки, являются неизменяемыми.

4 голосов
/ 03 июля 2017

Вот пример справочного источника. Интересно, что здесь Microsoft использовала подчеркивание для приватных полей и camelCase (без подчеркивания) для приватной статической только для чтения http://referencesource.microsoft.com/#mscorlib/system/collections/arraylist.cs,3e3f6715773d6643. Но этот второй пример также показывает, что у Microsoft нет собственного стандарта именования полей: http://referencesource.microsoft.com/#mscorlib/system/collections/hashtable.cs

2 голосов
/ 02 января 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...