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

Частная статическая Readonly Field Capization

Паскаль или случай верблюда?

Я называю частные поля и частные статические поля, используя случай верблюда. Я называю consts (как предложено соглашениями об именах MS) с pascal case (независимо от private и public)....

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

4b9b3361

Ответ 1

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

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

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

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

Официальная конвенция о присвоении имен MSDN

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

Используйте Паскаль для всех общедоступныхимена элементов, типов и имен состоящий из нескольких слов.

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

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

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

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

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

Ответ 2

Нет, private static readonly не является само по себе как const вообще. Рассмотрим:

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

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

Ответ 3

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

    private readonly Color LabelBackColor = Color.Black;

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

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

Ответ 4

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

Ответ 5

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