private const int THE_ANSWER = 42;
илиСоглашение об именовании C# для констант?
private const int theAnswer = 42;
Лично я думаю, что современные Иды мы должны идти с верблюжьего, как ALL_CAPS выглядит странно. Как вы думаете?
private const int THE_ANSWER = 42;
илиСоглашение об именовании C# для констант?
private const int theAnswer = 42;
Лично я думаю, что современные Иды мы должны идти с верблюжьего, как ALL_CAPS выглядит странно. Как вы думаете?
Рекомендуемая именование и капитализация конвенция заключается в использовании Pascal корпуса для констант (Microsoft есть инструмент под названием StyleCop, что документы всех предпочтительные конвенций и может проверить ваш источник для соответствия - хотя это немного слишком анально сохраняющий для вкусы многих людей). например
private const int TheAnswer = 42;
Паскаля нотации также задокументированы в компании Microsoft Framework Design Guidelines
Оставить Венгрии венгерцам.
В примере, я бы даже выйти из окончательного статью и просто пойти с
private const int Answer = 42;
Является ли этот ответ или что ответ?
* Made edit as Pascal строго правильный, однако я думал, что вопрос больше подходит для ответа на вопрос life, the universe and everything.
ALL_CAPS взято из методов работы C и C++, которые я считаю. В этой статье here объясняется, как возникли различия стиля.
В новой среде IDE, такой как Visual Studio, легко идентифицировать типы, область действия и, если они являются постоянными, поэтому это не является абсолютно необходимым.
Программное обеспечение FxCop и Microsoft StyleCop поможет вам дать рекомендации и проверить свой код, чтобы все работали одинаково.
Я по-прежнему придерживаюсь прописных значений констант, но это больше по привычке, чем по какой-либо конкретной причине.
Конечно, это позволяет сразу увидеть, что что-то является константой. Вопрос для меня: действительно ли нам нужна эта информация? Помогает ли это нам каким-либо образом избежать ошибок? Если я назначу значение const, компилятор скажет мне, что я сделал что-то немое.
Мое заключение: Идите с корпусом верблюда. Может быть, я буду менять мой стиль тоже ;-)
Edit:
что-то пахнет венгр не совсем убедительный аргумент, ИМО. Вопрос всегда должен быть: помогает ли ему или ему больно?
Бывают случаи, когда венгерский помогает. Не так много сегодня, но они все еще существуют.
На самом деле, это
private const int TheAnswer = 42;
По крайней мере, если вы смотрите в библиотеке .NET, которая ИМО является лучшим способом решить именования - так что ваш код не выглядит неуместным.
я на самом деле, как правило, предпочитают PascalCase здесь - но по привычке, я виновен в UPPER_CASE ...
Первый, Венгерский Обозначение - это практика использования префикса для отображения типа данных параметра или предполагаемого использования. соглашения об именах Microsoft, для не говорит нет венгерской нотации http://en.wikipedia.org/wiki/Hungarian_notation http://msdn.microsoft.com/en-us/library/ms229045.aspx
прописными не рекомендуется, как указано здесь: Паскаль случае является приемлемой конвенции и крича CAPS. http://en.wikibooks.org/wiki/C_Sharp_Programming/Naming
Microsoft также заявляет здесь, что UPPERCASE можно использовать, если оно выполнено в соответствии с существующей схемой. http://msdn.microsoft.com/en-us/library/x2dbyw72.aspx
Это в значительной степени подводит итог.
В своей статье Constants (C# Programming Guide), Microsoft дает следующий пример:
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 рекомендует использовать camelCasing
. Но учтите, что эти константы определены локально.
Возможно, более интересным является именование видимых извне констант. На практике Microsoft документирует свои общедоступные константы в библиотеке классов .NET как полей. Вот некоторые примеры:
static readonly
)Первые два являются примерами PascalCasing
. Третий, похоже, следует за Microsoft Capitalization Conventions для двухбуквенного сокращения (хотя pi не акримонимом). И четвертый, по-видимому, предполагает, что правило для двухбуквенного акрионима распространяется на один буквенный акроним или идентификатор, такой как E
(который представляет собой математическую константу e).
Кроме того, в заглавных Конвенциями документе, Microsoft очень прямо говорится, что идентификаторы полей должны быть названы через PascalCasing
и дает следующие примеры для MessageQueue.InfiniteTimeout и UInt32.Min:
public class MessageQueue
{
public static readonly TimeSpan InfiniteTimeout;
}
public struct UInt32
{
public const Min = 0;
}
Заключение: Использование PascalCasing
для общественных констант (которые задокументированы как const
или static readonly
полей).
Наконец, насколько я знаю, Microsoft не защищает конкретные соглашения об именах или капитализации для частных идентификаторов, как показано в примерах, представленных в вопросе.
Визуально, верхний корпус - это путь. Это так узнаваемо. Ради единственности и отсутствия угадывания, я голосую за UPPER_CASE!
const int THE_ANSWER = 42;
Примечание: Верхний чехол будет полезно, когда константы должны быть использованы в том же файле в верхней части страницы, а также для целей IntelliSense; однако, если они должны были быть переведены в независимый класс, использование Upper Case не имело бы большого значения в качестве примера:
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 might lose its charm
private void DoSomething(){
var getCons1 = Constant.Cons1;
var getCons2 = Constant.coNs2;
var getCons3 = Constant.cOns3;
var getCons4 = Constant.CONS4;
}
@mmiika: что означает «the» в этом примере? Это как в «Путеводителе автостопом по галактике», или оно переносится с некоторого стандарта кодирования на С ++? (Например, старая C++-инфраструктура для Macintosh, THINK C [и более поздняя версия Symantec C++] использовала префикс «его» для элементов-указателей/ссылок и «для» для скалярных элементов.) – 2010-02-03 11:26:40
@Peter, поскольку значение константы - 42 , Я очень верю, что это ссылка на «Путеводитель автостопом по Галактике» (http://en.wikipedia.org/wiki/Phrases_from_The_Hitchhiker%27s_Guide_to_the_Galaxy#Answer_to_the_Ultimate_Question_of_Life.2C_the_Universe.2C_and_Everything_.2842.29). – Albireo 2011-05-19 10:02:52
@PeterMortensen Это креативно! Но такие имена, как itsEmployee и itsCostumer, звучат так, будто они могут вводить в заблуждение. – 2012-03-29 00:37:30