Литералы в C# — это какие-либо фиксированные значения в исходном коде, которые присваиваются переменной и не могут быть изменены во время выполнения программы. С литералами в C# мы уже сталкивались неоднократно при работе над нашими проектами, однако сегодня мы рассмотрим эту тему более подробно.
Примеры литералов в C#
Ниже представлены несколько примеров использования литералов:
int i = 10; string hello = "Hello, World!" double weight = 45.5;
Здесь i, hello, weight– это переменные, а 10, "Hello, World!", 45.5– это литералы, которые присваиваются переменной. Литералы часто используются для инициализации переменных в C#.
Литералы в C#
Ниже представлена схема, демонстрирующая типы литералов в C#

Логические литералы
Существует всего два логических литерала — это true (истина) и false (ложь). Значения true и false не преобразуются ни в какое числовое представление. Литерал trueв C# не равен 1, а литерал falseне равен 0, хотя часто для объяснения каких-либо операций применяется именно такая аналогия – true ассоциируется с 1, а falseс 0.
Пример использования логических литералов:
bool yes = true; bool no = false; //такое присвоение недопустимо и приведет к ошибке bool one = 1; bool zero = 0;
Вот, что мы увидим в Visual Studio, если наберем код представленный выше:
Целочисленные литералы
Целочисленные литералы в C# используются для записи значений типов int, uint, long, ulongи т. д. Целочисленные литералы могут быть представлены в десятичной, двоичной или шестнадцатеричной системе счисления. Пример целочисленных литералов в десятичной системе:
int age = 78; int width = 15;
Если целочисленный литерал используется для записи числа в двоичной системе, то используется префикс 0b (ноль и b). Например,
int symbolZ = 0b01011010; Console.WriteLine(symbolZ);
в консоли мы увидим значение 90 (01011010в двоичной системе).
Если целочисленный литерал используется для записи числа в шестнадцатеричной системе, то используется префикс 0x (ноль и x). Например,
int symbolZ = 0x5A; Console.WriteLine(symbolZ);
в консоли мы увидим значение 90 (5A в шестнадцатеричной системе).
Также, с целочисленными литералами в C# могут использоваться суффиксы U или u для беззнаковых типов, например, для uintи L или l для типов long. Например,
uint data = 145u; ulong longData = 123876U; long longData2 = -1234L;
Литералы с плавающей запятой
Литералы в C#, которые имеют целую часть и дробную часть, называются литералами с плавающей запятой. Литералы с плавающей запятой используются для записи значений типов float, double, decimal.
double, поэтому мы не можем напрямую присваивать значения переменным, например, с типом float Например, следующий код приведет к ошибке:
float data = 12.54;
Ошибка будет выглядеть следующим образом:
Если мы хотим присвоить значение переменной с типом float, то необходимо добавить суффикс f в конце литерала с плавающей запятой. Аналогично, если мы хотим присвоить значение переменной с типом decimal, то необходимо добавить суффикс m или M в конце литерала с плавающей запятой.
Если никакой суффикс не добавляется, то по умолчанию литерал с плавающей запятой будет иметь тип double. Мы можем явно указать литерал с плавающей запятой как тип double, добавив суффикс d или D, но это необязательно.
Символьные литералы в C#
Символьные литералы в C# заключаются в одинарные кавычки, например, ‘a’, и могут использоваться в переменных типа char. Символьный литерал может быть простым символом, например, ‘a’, escape-последовательностью, например, ‘\t’, или универсальным символом, например, ‘\u02B0’.
Таким образом, для символьных типов данных мы можем задавать символьные литералы тремя способами.
Символьные литералы с escape-последовательностью
Каждая escape-последовательность начинается с символа «\». Некоторые escape-последовательности, допустимые для использования в символьных литералах C# представлены в таблице ниже.
| Escape-последовательность | Значение |
| \’ | Одинарная кавычка |
| \» | Двойная кавычка |
| \\ | Обратная косая черта |
| \0 | Null |
| \a | Предупреждение |
| \b | Backspace |
| \f | Перевод страницы |
| \n | Новая строка |
| \r | Возврат каретки |
| \t | Горизонтальная табуляция |
| \v | Вертикальная табуляция |
| \u | Escape-последовательность Юникода (UTF-16) |
| \U | Escape-последовательность Юникода (UTF-32) |
| \x | Escape-последовательность Юникода аналогична «\u», она отличается только длиной переменной |
Рассмотрим пример использования escape-последовательностей:
char newLine = '\n';
char carriageReturn = '\r';
Console.WriteLine($"Этот текст будет размещаться на двух строках {carriageReturn}{newLine} потому что в строке используются управляющие символы");
для переменных newLineи carriageReturnмы используем escape-последовательности (или, как их ещё называют – управляющие последовательности), с помощью которых мы переносим часть текста на новую строку. Можете попробовать запустить этот пример в консольном приложении и убедиться, что текст действительно разбивается на две строки.
Символьные литералы, использующие представление в Юникоде
Мы можем задавать символьные литералы с помощью представления Юникода в формате ‘\uXXXX’, где XXXX — это 4 шестнадцатеричных числа (коды символов в Unicode). Например,
char ch = '\u0041'; Console.WriteLine(ch);
В консоли мы увидим символ A.
Строковые литералы в C#
Строковые литералы в C# заключаются в двойные кавычки (“”) или начинаются с @” “. В C# строковые литералы можно представить двумя способами:
Обычные строковые литералы: обычный строковый литерал в C# состоит из нуля или более символов, заключённых в двойные кавычки, например «Учебник по C# для начинающих», и может включать как простые символы, так и управляющие последовательности и символы в кодировке Юникода.
Например:
string title = "Учебник по C# для начинающих\r\n2025, csharp-tutorials.ru"; Console.WriteLine(title);
В консоли вы увидите:
Буквальные строковые литералы: буквальный строковый литерал начинается с символа @, за которым следует двойная кавычка, которая может содержать ноль или более символов, и заканчивается двойной кавычкой. Буквальный литерал выводит строку как есть, даже, если она содержит управляющие последовательности. Такие литералы удобно использовать, когда необходимо передать переменной, например, путь к файлу:
string path = @"c:\temp\file.path"; Console.WriteLine(path);
Дело в том, что каждая одинарная косая черта \ в C# воспринимается как начало управляющей последовательности и, например, вот такой код:
string path = "c:\temp\file.path"; Console.WriteLine(path);
выведет в консоль
потому что сочетание \t будет восприниматься как горизонтальная табуляция, а \f – как перевод страницы (см. таблицу выше). Поэтому мы используем буквальный литерал для того, чтобы строка воспринималась буквально как есть.
null
Ключевое слово null в C# является литералом, представляющим пустую ссылку, которая не ссылается на объект. Этот литерал может применяться к переменным с ссылочным типом данных.
Подведем итог
Литералы в C# используются для инициализации переменных и могут быть логическими, символьными, целочисленными, строковыми и литералами с плавающей запятой. Для символьных и строковых литералов м можем использовать различные управляющие последовательности, а для численных литералов – префиксы (для представления целого числа в различных системах счисления) и суффиксы (для определения типа вещественного литерала).
Домашнее задание №7.
Напишите в консоли строку с текстом: “Компания “Рога и Копыта” объявляет о скидках!”. Используйте правильное экранирование кавычек.