Соглашение об именах с # для констант?
private const int THE_ANSWER = 42;
или
private const int theAnswer = 42;
Лично я думаю, что с современными IDE 9X_constants мы должны использовать camelCase, поскольку 9X_constants ALL_CAPS выглядит странно. Как вы думаете?
- @Peter, так как значение константы равно 42, я твердо верю, что это отсылка к [Автостопом по Галактике] (http://en.wikipedia.org/wiki/Phrases_from_The_Hitchhiker%27s_Guide_to_the_Galaxy#A ...
Ответ #1
Ответ на вопрос: Соглашение об именах с # для констант?
Рекомендуемое соглашение об именах и использовании 9X_c-sharp заглавных букв - использовать PascalCasing для констант 9X_constant (у Microsoft есть инструмент с именем StyleCop, который 9X_non-const документирует все предпочтительные соглашения 9X_naming-conventions и может проверять ваш источник на соответствие 9X_non-const - хотя это тоже немного анально сохраняет 9X_constants на вкус многих людей). например
private const int TheAnswer = 42;
Соглашение 9X_.cs-file об использовании заглавных букв в языке 9X_c#.net Pascal также задокументировано в Framework Design Guidelines от Microsoft.
- В правилах Microsoft говорится: «Не ...
Ответ #2
Ответ на вопрос: Соглашение об именах с # для констант?
Визуально верхний регистр - лучший вариант. Это 9X_c#.net так узнаваемо. Ради уникальности и не оставляя 9X_c#-language шанса гадать, голосую за UPPER_CASE!
const int THE_ANSWER = 42;
Примечание. Верхний 9X_variable-naming регистр будет полезен, когда константы должны 9X_constants использоваться в одном файле в верхней части 9X_casing-conventions страницы и для целей intellisense; однако, если 9X_naming-conventions бы они были перемещены в независимый класс, использование 9X_constants верхнего регистра не имело бы большого значения, например:
public static class Constant { public static readonly int Cons1 = 1; public static readonly int coNs2 = 2; public static readonly int cOns3 = 3; public static readonly int CONS4 = 4; } // Call constants from anywhere // Since the class has a unique and recognizable name, Upper Case might lose its charm private void DoSomething(){ var getCons1 = Constant.Cons1; var getCons2 = Constant.coNs2; var getCons3 = Constant.cOns3; var getCons4 = Constant.CONS4; }
- @usefulBee Согласен. Но все же хорошо отметить, как это _согласованный_ способ написания. В последнее время я делал много кода Ruby, и я думаю, что SCREAMING_SNAKE_CASE имеет смысл: совершенно очевидно, что это что-то особенное, и вам даже не нужно ...
Ответ #3
Ответ на вопрос: Соглашение об именах с # для констант?
На самом деле это
private const int TheAnswer = 42;
По крайней мере, если вы 9X_const посмотрите на библиотеку .NET, какая IMO 9X_const - лучший способ решить соглашения об именах, чтобы 9X_const ваш код не выглядел неуместным.
Ответ #4
Ответ на вопрос: Соглашение об именах с # для констант?
Я по-прежнему использую верхний регистр 9X_const для значений const, но это больше по привычке, чем 9X_c#-language по какой-либо конкретной причине.
Конечно, это 9X_constant позволяет сразу увидеть, что что-то является 9X_c# константой. Вопрос ко мне: действительно 9X_visual-c# ли нам нужна эта информация? Помогает ли 9X_constants это нам как-нибудь избежать ошибок? Если 9X_variable-naming я присвою значение константе, компилятор 9X_c#-language скажет мне, что я сделал что-то глупое.
Мой 9X_naming-conventions вывод: возьмите верблюжью оболочку. Возможно, я 9X_const тоже изменю свой стиль ;-)
Изменить:
То, что что-то 9X_naming-conventions пахнет венгерским, на самом деле не веский аргумент, ИМО. Всегда 9X_naming-conventions должен быть вопрос: помогает или больно?
Бывают 9X_.cs-file случаи, когда венгерский помогает. Сейчас 9X_const их не так много, но они все еще существуют.
- Современные IDE выявляют множество проблем перед компиляцией. Я не думаю, что распознавание константы по имени важно, иначе ...
Ответ #5
Ответ на вопрос: Соглашение об именах с # для констант?
Во-первых, венгерская нотация - это практика 9X_visual-c# использования префикса для отображения типа 9X_c#-language данных параметра или предполагаемого использования. Соглашения 9X_.cs-file Microsoft об именах для говорит нет венгерской 9X_c#.net нотации http://en.wikipedia.org/wiki/Hungarian_notation http://msdn.microsoft.com/en-us/library/ms229045.aspx
Использование ЗАПИСИ НЕ рекомендуется, как 9X_c#.net указано здесь: Паскаль Кейс является приемлемым 9X_c#.net условием и КРИЧАТЬ ЗАГЛАВНЫМИ БУКВАМИ. http://en.wikibooks.org/wiki/C_Sharp_Programming/Naming
Microsoft 9X_constant также заявляет здесь, что ВЕРХНИЙ РЕГИСТР 9X_const можно использовать, если это сделано для 9X_variable-naming соответствия существующей схеме. http://msdn.microsoft.com/en-us/library/x2dbyw72.aspx
Это в значительной 9X_variable-naming степени подводит итог.
- Да, в венгерских обозначениях ...
Ответ #6
Ответ на вопрос: Соглашение об именах с # для констант?
В своей статье Constants (C# Programming Guide) Microsoft приводит следующий 9X_const пример:
class Calendar3 { const int months = 12; const int weeks = 52; const int days = 365; const double daysPerWeek = (double) days / (double) weeks; const double daysPerMonth = (double) days / (double) months; }
Итак, для констант похоже, что Microsoft 9X_const рекомендует использовать camelCasing
. Но обратите внимание, что 9X_variable-naming эти константы определены локально.
Возможно, больший 9X_const интерес представляет наименование видимых 9X_non-const извне констант. На практике Microsoft документирует 9X_naming-conventions свои общедоступные константы в библиотеке классов .NET как поля. Вот 9X_variable-naming несколько примеров:
- Int32.MaxValue
- String.Empty (на самом деле
static readonly
) - Math.PI
- Math.E
Первые два являются примерами 9X_c#-language PascalCasing
. Третий, похоже, следует за Microsoft Capitalization Conventions для 9X_c#-language двухбуквенного акронима (хотя pi не является 9X_casing-conventions акрионимом). И четвертый, кажется, предполагает, что 9X_constant правило для двухбуквенного акрионима распространяется 9X_constant на однобуквенный акроним или идентификатор, такой 9X_non-const как E
(который представляет математическую 9X_casing-conventions константу e).
Кроме того, в своем документе 9X_naming-conventions о правилах использования заглавных букв 9X_c-sharp Microsoft прямо заявляет, что идентификаторы 9X_c# полей должны называться через PascalCasing
, и приводит 9X_constants следующие примеры для MessageQueue.InfiniteTimeout и UInt32.Min:
public class MessageQueue { public static readonly TimeSpan InfiniteTimeout; } public struct UInt32 { public const Min = 0; }
Заключение: используйте PascalCasing
для общедоступных констант (которые задокументированы 9X_c-sharp как поля const
или static readonly
).
Наконец, насколько мне известно, Microsoft 9X_c#.net не поддерживает определенные соглашения 9X_c-sharp об именах или использовании заглавных букв 9X_c-sharp для частных идентификаторов, как показано в примерах, представленных 9X_c# в вопросе.
- Статья, на которую указывает этот ответ, была изменена. Константы теперь общедоступны и были переведены на PascalCased. Учитывая оба этих изменения, это не помогает ...
Ответ #7
Ответ на вопрос: Соглашение об именах с # для констант?
Оставьте венгерский язык венграм.
В этом 9X_c# примере я бы даже пропустил окончательную 9X_constants статью и просто выбрал
private const int Answer = 42;
Это ответ или это 9X_constants ответ?
* Правка на языке Паскаля сделана 9X_visual-c# строго корректной, однако я подумал, что 9X_non-const вопрос требует более подробного ответа на 9X_non-const life, the universe and everything.
- В данном конкретном случае это * ответ *. Но только потому, что я очень люблю читать Д. Адам ...
Ответ #8
Ответ на вопрос: Соглашение об именах с # для констант?
Я считаю, что ALL_CAPS заимствован из методов 9X_naming-conventions работы C и C++. В этой статье here объясняется, как 9X_c-sharp возникли различия в стилях.
В новой среде 9X_const IDE, такой как Visual Studio, легко определить 9X_constant типы, область видимости и их постоянство, поэтому 9X_c#.net в этом нет строгой необходимости.
Программы 9X_csharp FxCop и Microsoft StyleCop помогут дать вам рекомендации 9X_casing-conventions и проверить ваш код, чтобы все работали 9X_naming-conventions одинаково.
Ответ #9
Ответ на вопрос: Соглашение об именах с # для констант?
На самом деле я предпочитаю здесь PascalCase, но 9X_variable-naming по привычке я виноват в UPPER_CASE ...
-
3
-
3
-
8
-
2
-
1
-
7
-
14
-
9
-
7
-
7
-
8
-
16
-
14
-
6
-
5
-
8
-
16
-
5
-
8
-
2
-
8
-
8
-
8
-
8
-
6
-
4
-
11
-
12
-
5
-
6
-
5
-
5
-
5
-
4
-
2
-
3
-
2
-
7
-
2
-
5
-
2
-
1
-
1
-
27
-
10
-
6
-
8
-
5
-
17
-
6