Каково статическое полевое соглашение о присвоении имен C#?

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

private static string _myString;
  1. Это - действительно стандартный способ назвать статические переменные? Раз так это - просто персональное предпочтение и стиль, или это оказывает своего рода более низкое влияние уровня? Например, Компиляция JIT и т.д.?
  2. Где этот стиль происходит из? Я всегда связывал его с C++, который корректен?
33
задан Matt 18 June 2010 в 16:21
поделиться

6 ответов

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

Общепринятыми соглашениями являются camelCase, _camelCase и даже иногда похмелье от C++/MFC m_camelCase.

Если вы используете camelCase без префикса, ваши поля подложки свойств будут отличаться от имени свойства только регистром, что не является проблемой в C#, но не будет работать в языке, нечувствительном к регистру, таком как VB.NET.

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

25
ответ дан 27 November 2019 в 17:51
поделиться

Согласно MSDN , используйте Pascal Case для статических полей. Я всегда хихикаю, когда MSDN и StyleCop противоречат друг другу :).

Итак, если вы следуете стандартам MSDN, правильный способ:

private static string MyString;
23
ответ дан 27 November 2019 в 17:51
поделиться

На самом деле это стиль для частного поля, статического или нет. (По крайней мере, в ReSharper)

11
ответ дан 27 November 2019 в 17:51
поделиться

Согласно StyleCop (и с настройками по умолчанию), правильным способом наименования большинства полей (как указано ниже) является строчная буква в начале.

SA1306: FieldNamesMustBeginWithLowerCaseLetter

... Имена полей и переменных должны начинаться со строчной буквы, если только поле не является публичным или внутренним, const, или не является частным и доступным для чтения. В этих случаях поле должно начинаться со строчной буквы.

См. также SA1309: FieldNamesMustNotBeginWithUnderscore.

13
ответ дан 27 November 2019 в 17:51
поделиться

Конвенция - это то, что говорится в стандартах кодирования вашей компании.

4
ответ дан 27 November 2019 в 17:51
поделиться

1 - Не существует окончательного стандартного правила для имен переменных. Существуют требования к компилятору C # в отношении того, что разрешено, а что нет (т. Е. Не может начинаться с числа), но правила стиля языка программирования обычно оставляются на усмотрение программистов / организаций. В ReSharper есть предопределенные правила стиля; однако они просто устанавливаются как значения по умолчанию в подходе к конфигурации, а не к соглашению, и их можно изменять.

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

0
ответ дан 27 November 2019 в 17:51
поделиться
Другие вопросы по тегам:

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