Константы и литералы в C#: типы, правила и лучшие практики
Что такое константы
Константы — это фиксированные значения, которые программа не может изменить во время выполнения. Их также называют литералами. Константы могут быть любого базового типа: целочисленные, с плавающей точкой, символьные, строковые, а также перечисления.
Константы ведут себя как обычные переменные, но их значения нельзя изменить после определения.
Целочисленные литералы
Целочисленный литерал может быть десятичным или шестнадцатеричным. Префикс указывает основание:
0xили0X— шестнадцатеричное- Без префикса — десятичное
Суффиксы (регистронезависимы, порядок не важен):
U/u— беззнаковый (uint,ulong)L/l— длинное (long,ulong)
Примеры:
212 // int
215u // uint
0xFeeL // long (hex)
85 // decimal
0x4b // hexadecimal
30 // int
30u // uint
30l // long
30ul // ulong
Литералы с плавающей точкой
Составляют: целая часть, десятичная точка, дробная часть, экспонента. Две формы записи:
- Десятичная: обязательны десятичная точка, экспонента или обе
- Экспоненциальная: обязательны целая часть, дробная часть или обе. Экспонента обозначается
eилиE
Примеры:
3.14159 // корректно
314159E-5F // корректно (float)
510E // ошибка: неполная экспонента
210f // ошибка: нет точки или экспоненты
.e55 // ошибка: отсутствует целая или дробная часть
Суффиксы: F/f — float, D/d — double (по умолчанию), M/m — decimal.
Символьные константы
Заключаются в одинарные кавычки: 'x'. Тип — char. Могут быть:
- Обычные символы:
'a','Z','9' - Escape-последовательности:
'\t','\n' - Универсальные символы:
'\u02C0'
Таблица escape-последовательностей
| Последовательность | Значение |
|---|---|
\\ | Обратный слеш |
\' | Одинарная кавычка |
\" | Двойная кавычка |
\? | Знак вопроса |
\a | Звонок (alert) |
\b | Backspace |
\f | Перевод страницы |
\n | Новая строка |
\r | Возврат каретки |
\t | Горизонтальная табуляция |
\v | Вертикальная табуляция |
\xhh... | Шестнадцатеричное число |
\uhhhh | Unicode-символ (4 hex цифры) |
Пример использования escape-последовательностей
using System;
namespace EscapeChar
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello\tWorld\n\n");
Console.ReadLine();
}
}
}
Результат:
Hello World
Строковые литералы
Заключаются в двойные кавычки "" или используют verbatim-синтаксис @"". Содержат обычные символы, escape-последовательности и универсальные символы.
Длинные строки можно разбивать на несколько строк:
"hello, dear"
"hello, \ dear"
"hello, " "d" "ear"
@"hello dear"
Все три формы эквивалентны. Verbatim-строки (@) не обрабатывают escape-последовательности (кроме "" для кавычки) и могут занимать несколько строк.
Объявление констант
Используется ключевое слово const:
const <тип_данных> <имя_константы> = значение;
Пример: вычисление площади круга
using System;
namespace DeclaringConstants
{
class Program
{
static void Main(string[] args)
{
const double pi = 3.14159;
double r;
Console.WriteLine("Введите радиус: ");
r = Convert.ToDouble(Console.ReadLine());
double areaCircle = pi * r * r;
Console.WriteLine("Радиус: {0}, Площадь: {1}", r, areaCircle);
Console.ReadLine();
}
}
}
Результат (при вводе 3):
Введите радиус: 3
Радиус: 3, Площадь: 28.27431
Разница между const и readonly
| Характеристика | const | readonly |
|---|---|---|
| Инициализация | Только при объявлении | При объявлении или в конструкторе |
| Время вычисления | Compile-time | Runtime |
| Модификатор | Неявно static | Может быть instance |
| Типы | Только базовые + string + null | Любые типы |
Язык C
- Комплексный обзор резисторов, катушек и конденсаторов в цепях переменного тока
- Понимание ключевых слов и идентификаторов C#: правила, списки и лучшие практики
- Классы и объекты в C#: Фундаменты надёжного ООП
- Абстрактные классы и методы в C#: практическое руководство
- Частичные классы и методы в C#: понимание и применение
- Sealed-классы и sealed-методы в C#: когда использовать, примеры и повышение безопасности кода
- Освоение переменных, литералов и констант в C++: подробное руководство
- Ключевые слова и идентификаторы в C: практическое руководство
- Переменные, константы и литералы в C: полное руководство
- Переменные, типы данных и константы в C — практическое руководство