const (Справочник по C#)
Ключевое слово const используется для изменения объявления поля или локальной переменной.Оно указывает на то, что значение поля или локальной переменной является постоянным и не может быть изменено.Примеры.
const int x = 0;
public const double gravitationalConstant = 6.673e-11;
private const string productName = "Visual C#";
Заметки
Тип объявления константы указывает тип членов, представленных объявлением.Константное выражение должно выдавать значение целевого типа или типа, который можно неявно преобразовать к целевому типу.
Константное выражение – это выражение, значение которого можно полностью вычислить во время компиляции.Таким образом, единственными возможными значениями для констант ссылочных типов являются string и 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()
{
SampleClass mC = new SampleClass(11, 22);
Console.WriteLine("x = {0}, y = {1}", mC.x, mC.y);
Console.WriteLine("c1 = {0}, c2 = {1}",
SampleClass.c1, 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 = {0}", c);
}
}
// Output: My local constant = 707
Спецификация языка C#
Дополнительные сведения см в Спецификация языка C#. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.
См. также
Ссылки
Модификаторы (Справочник по C#)
Основные понятия
Руководство по программированию на C#