C# допускает введение в программу объектов, внешне похожих на переменные, но которые, в отличие от них, не могут изменять свое значение во время выполнения программы. Такие объекты называются константами. Имя константы – это синоним некоторого определенного значения, которое сопоставляется с этим идентификатором при описании.
Описание константы начинается со служебного слова Const, вслед за которым располагается тип, имя и значение константы:
Const int ALFA=35; const string OMEGA=”STROKA”;
Если константа определяется в программе, то ее идентификатор может входить во все конструкции, в которых должны присутствовать связанные с ним значения. Но попытка изменения значения константы в программе является недопустимой.
Пусть описана константа:
Const double spred=27.561;
double r;
{
r=spred+7.5;
spred=r+2.5
}
Последний оператор присваивания spred=r+2.5 пытается осуществить запрещенное преобразование – изменить значение константы spred.
Использование в программе идентификаторов констант вместо записи конкретных значений считается хорошим стилем программирования, который делает программу более читабельной, более понятной. Кроме того, в такую программу легче внести изменения, связанные с изменением константы, так как в этом случае изменения вносятся в область определения констант и не требуют просмотра всей программы.
C# расширяет возможности определения констант, допуская в правой части константные выражения, строящиеся по тем же правилам, что и обычные выражения, но они должны быть вычислимыми в рассматриваемой точке программы:
Пример.
const stringslovo=”error”;
const string result=slovo+”__”;
const int l=5;
const int v=25;
const int lv=(l+v);
Особенность константных выражений состоит в том, что они вычисляются на стадии компиляции, т. е. для их вычисления не требуется выполнение самой программы.