В этой статье мы исследуем константы. Константа — это особый вид переменной. Вид, который не меняется; они неизменны.

Неизменный означает, что он не может быть изменен.

Эта статья является частью серии статей об обучении программированию, в которых вам не нужны предварительные знания в области программирования. Если вы хотите научиться программировать и хотите научиться этому, используя .NET/C#, это правильное место. Я предлагаю прочитать всю серию по порядку, начиная с Создание вашей первой программы на .NET/C#, но это не обязательно.

Определение константы

Помимо знания того, что значение константы не может измениться, ее значение заменяется во время компиляции.

Напротив, переменные оцениваются во время выполнения. Поэтому программа использует значение, которое они хранят во время их использования во время выполнения.

Чтобы определить константу, мы используем модификатор const перед ее типом, за которым следует идентификатор, оператор присваивания, затем ее значение; нравится:

const string greetings = "Hello .NET Ninja!";
const int age = 102;

Примечание. мы не можем использовать ключевое слово var для констант.

Давайте рассмотрим два варианта использования, один с использованием переменной, а другой с использованием константы.

Переменный поток

В следующем коде значение переменной greetings передается методу WriteLine. Затем он записывается в консоль во время выполнения.

var greetings = "Hello .NET Ninja!";
Console.WriteLine(greetings);

Поэтому, если мы изменим значение переменной по пути, вывод будет другим; нравится:

var greetings = "Hello .NET Ninja!";
Console.WriteLine(greetings);
greetings = "This is new!"
Console.WriteLine(greetings);

При выполнении предыдущего кода программа выведет в консоль две строки, Hello .NET Ninja! и This is new!. Это потому, что оценка выполняется во время выполнения.

Далее смотрим константы.

Постоянный поток

В случае константы ее значение заменяется во время компиляции. В качестве примера возьмем следующий код:

const string greetings = "Hello .NET Ninja!";
Console.WriteLine(greetings);

На этапе компиляции компилятор заменяет идентификатор константы ее значением. В нашем случае мы получаем следующий код:

Console.WriteLine("Hello .NET Ninja!");

При выполнении программы результат такой же, как если бы мы сами написали предыдущий код. Единственная разница в том, что компилятор сделал за нас работу по замене значения.

Далее мы посмотрим, что мы можем сделать с этим.

Что делать с константами?

Для новичка это может показаться бесполезным, но по мере роста вашего уровня знаний это становится более актуальным. В общем, константы используются для облегчения сопровождения вашей программы. Вот несколько примеров:

Случай 1: вы не хотите, чтобы жестко запрограммированные значения распространялись по всей вашей программе. Это усложняет поддержку программы, когда вам нужно изменить одно из этих жестко закодированных значений. Вы также можете сделать опечатку при вводе значения вручную. Например, вам нужно найти значения, убедиться, что вы ничего не забыли, заменить их и т. д., что увеличивает риск совершения ошибки в процессе. Чтобы решить эту проблему, вы можете использовать константы для централизации всех этих значений в одном месте, упрощая поддержку программы без ущерба для производительности во время выполнения, поскольку константы заменяются во время компиляции.

Вариант 2: вы хотите повторно использовать определенное значение в нескольких местах кода для идентификации чего-либо (идентификатора, ключа, индекса, URL-адреса). Вместо того, чтобы дублировать это буквальное значение, вы можете использовать константу, которая устраняет дублирование, полагаясь только на константу. Если вам нужно изменить значение, вы можете обновить константу, перекомпилировать и вуаля; все ссылки на эту константу теперь используют новое обновленное значение.

Дополнительная информация. У констант есть обратная сторона, которая может возникнуть в более сложном сценарии. При создании проекта (1), который зависит от константы из другого проекта (2), если автор проекта (2) изменяет значение константы, от которой зависит проект (1), проект (1) необходимо перекомпилировать для применяемое изменение. В редких случаях это может иметь непредвиденные последствия, если используются разные значения, что приводит к несогласованным состояниям.

Вы можете вернуться к этому примечанию позже, поскольку оно предназначено для более сложных сценариев. Возможно, что-то или все это пока не имеет для вас никакого смысла, что нормально. Я все равно решил оставить заметку, потому что она связана с постоянными и ее важно знать.

Упражнение

К сожалению, мне не удалось воссоздать упражнение на этой платформе, поэтому посмотрите упражнение в исходном сообщении [в моем блоге](https://www.forevolve.com/en/articles/2021/02/28 /learn-coding-with-dot-net-core-part-3/#exercise). Извините за неудобства.

Вывод

В этой статье мы изучили синтаксис констант. Мы рассмотрели, как создать константу и как присвоить ей значение. Подобно объявлению переменной с использованием ключевого слова var, мы должны присвоить ей значение при ее объявлении. Мы не можем использовать ключевое слово var для константы и вместо этого должны указать ее тип. В отличие от переменных, после объявления константы мы не можем изменить ее значение.

Значение константы оценивается и заменяется во время компиляции, что делает ее отличным кандидатом для повышения удобства сопровождения при сохранении производительности. В качестве ссылки переменные оцениваются во время выполнения.

Следующий шаг

Пришло время перейти к следующей статье: **Введение в комментарии C#**, которая скоро будет опубликована. Оставайтесь с нами, подписавшись на меня в Medium, Twitter или других местах, где вы можете меня найти. Дополнительную информацию можно найти на [странице контактов моего блога](https://www.forevolve.com/contact/).

Первоначально опубликовано на https://www.forevolve.com 28 февраля 2021 г.