Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте ключевое const слово для объявления поля константы или локальной константы. Поля констант и локальные значения не являются переменными и не могут быть изменены. Константы могут быть числами, логическими значениями, строками или пустой ссылкой. Не создавайте константу для представления сведений, которые вы ожидаете изменить с течением времени. Например, не используйте постоянное поле для хранения цены на услугу, номер версии продукта или фирменное название компании. Эти значения могут изменяться с течением времени, и поскольку компиляторы распространяют константы, для просмотра изменений необходимо перекомпилировать другой код, скомпилированный с помощью библиотек. См. также ключевое слово только для чтения. Например:
const int X = 0;
public const double GravitationalConstant = 6.673e-11;
private const string ProductName = "Visual C#";
Интерполированные строки могут быть константами, если все используемые выражения также являются константными строками. Эта функция может улучшить код, который создает константные строки:
const string Language = "C#";
const string Platform = ".NET";
const string FullProductName = $"{Platform} - Language: {Language}";
Справочные документы по языку C# описывают последнюю выпущенную версию языка C#. Она также содержит начальную документацию по функциям в общедоступных предварительных версиях для предстоящего языкового выпуска.
Документация определяет любую функцию, впервые представленную в последних трех версиях языка или в текущих общедоступных предварительных версиях.
Подсказка
Чтобы узнать, когда функция впервые появилась в C#, ознакомьтесь со статьей об истории версий языка C#.
Тип объявления константы указывает тип элементов, которые вводит объявление. Инициализатор локальной константы или поля константы должен быть константным выражением, которое компилятор может неявно преобразовать в целевой тип.
Константное выражение — это выражение, которое компилятор может полностью оценить во время компиляции. Таким образом, единственными возможными значениями для констант ссылочных типов являются строки и null-ссылка.
Можно объявить несколько констант в одном объявлении констант, например:
public const double X = 1.0, Y = 2.0, Z = 3.0;
Модификатор static не допускается в объявлении констант.
Константа может участвовать в константном выражении следующим образом:
public const int C1 = 5;
public const int C2 = C1 + 100;
Заметка
Ключевое слово readonly отличается от ключевого слова const. Вы можете инициализировать const поле только в объявлении поля. Можно инициализировать readonly поле в объявлении или конструкторе. Таким образом, readonly поля могут иметь разные значения в зависимости от используемого конструктора. Кроме того, хотя поле const является константой времени компиляции, поле readonly можно использовать для констант времени выполнения, как в этой строке: public static readonly uint l1 = (uint)DateTime.Now.Ticks;
Примеры
public class ConstTest
{
class SampleClass
{
public int x;
public int y;
public const int C1 = 5;
public const int C2 = C1 + 5;
public SampleClass(int p1, int p2)
{
x = p1;
y = p2;
}
}
static void Main()
{
var mC = new SampleClass(11, 22);
Console.WriteLine($"x = {mC.x}, y = {mC.y}");
Console.WriteLine($"C1 = {SampleClass.C1}, C2 = {SampleClass.C2}");
}
}
/* Output
x = 11, y = 22
C1 = 5, C2 = 10
*/
В следующем примере показано, как объявить локальную константу:
public class SealedTest
{
static void Main()
{
const int C = 707;
Console.WriteLine($"My local constant = {C}");
}
}
// Output: My local constant = 707
Спецификация языка C#
Дополнительные сведения см. в следующих разделах спецификации языка C# :.
- константы
- Константные выражения