Как правильно писать константы?
В C# правильно писать константы вот так:
const int MONTHS = 12;
или так как пишет здесь https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/classes-and-structs/constants ?
const int Months = 12;
Ответы (4 шт):
Это всего пример, есть документация об "Правильном коде", в которой вообще ничего не сказано об константах, есть лишь правило об наименовании, пример, первая буква маленькая, а разделение слов в названии идёт без доп символов, каждое слово с большой буквы - itIsCoolVar.
Могу только сказать свою гипотезу:
Константы пишутся большими буквами ТОЛЬКО когда они находятся в общедоступном статичном классе, обозначающий легкий элемент или целочисленное значение:
internal static partial class User32
{
public static class VK
{
public const int TAB = 0x0000;
public const int SHIFT = 0x0001;
public const int CONTROL = 0x0002;
public const int MENU = 0x0003;
}
}
В других же случаях нужно их писать как обычные переменные.
Как вы понимаете, каждый делает по своему, даже в офф репозитории WinForms есть противоречия:
public static class Example
{
public const int WINDOW = 0x00000000;
public const int IDC_ARROW = 32512;
public const int MENU = 0x0003;
public const string MSFTEDIT_CLASS = "RICHEDIT50W";
public const string EnableVisualStyles = "ApplicationVisualStyles";
public const string Comctl32 = "comctl32.dll";
public const string Code = "Code";
}
Я принимаю константы за обычные поля, и по CamelCase именую вот так:
public const int pi = 3.14;
Приватные так же
private const int count = 10;
Тут главное именовать всё (и переменные и методы) в одном стиле, то есть если ты где то начал, к примеру, именовать так как я написал выше, то старайся придерживаться этого же стиля написания во всем коде.
Я именую приватные поля
private const int c_name = 12;
Именую публичные поля
public const int NameConst = 12;
Согласно конвенциям Microsoft, вам стоит использовать PascalCase для именования констант и локальных констант. В своём коде я использую два основных подхода для именования констант в зависимости от их значимости.
Основной способ декларирования использует UPPERCASE
private const string HOST = "localhost";
private const int PORT = 5001;
private const float LOAD = 0.0f;
private const bool USE_PROCEDURES = true;
Для строк я использую следующий тип декларации (Ненавижу magic string)
private const string SignUpErrorMessage = "Invalid credentials";
private const string SendEmailResponseMessage = "Check your email";