Литерал(literal) – запись в коде программы, который имеет фиксированное(константное) значение. Литералами также называют представление некоторых типов данных в виде текстовых строк. С помощью литералов, в языке C#, переменным передаются значения.
Типы литералов:
- логические или булевы;
- целочисельные;
- вещественные или дробные;
- символьные;
- строковые;
- массивы-литералы;
- объектные литералы;
- null-литерал.
Логические(булевы) литералы
В .Net есть две булевы(от типа данных bool) константы: true(истина) та false(ложь):
bool isEmpty = true;
bool loaded = false;
Целочисельные литералы
Данный тип литералов предназначен для представления, положительных и отрицательных, целых чисел к примеру -9, 0, 11, 42.
C# поддерживает чисельные литералы для разных систем счисления.
Двоичные(бинарные)
Появились в C# версии 7.0. Используются для записи чисел в двоичной системе счисления, перед числом нужно ставить префикс 0b, за которым следует, набор нулей и единиц двоичной формы: 0b101, 0b100111, 0B001010.
В бинарных литералах, для форматирования, можно использовать символ подчеркивания “_”: 0b____1011 то же, что и 0b00001011.
Восьмеричные
Предназначены для представления чисел восьмеричной системы счисления, используется префикс 0, после которого записывают восьмеричное число(от 0 до 7): 0123, 0742, 0349.
Десятичные
Запись в десятичной форме счисления. Числа записываются в привычной для нас форме: -5, 12, 78.
Шестнадцатеричные
Предназначены для шестнадцатеричной системы счисления, используется префикс 0x, после которого записывают число в шестнадцатеричной системе(от 0 до 9 и от A до F): 0x12, 0xA56B, 0xff430c1.
Регистр символов не различается компилятором: 0b01 то же, что и 0B01, 0xaBc = 0XAbC = 0xABC.
//бинарный, двоичный литерал
int binNum = 0b10101010;
//восьмеричный
int octNum = 017212;
//десятичный
int decNum = -924;
//шестнадцатеричный
int hexNum = 0xFF0CAA;
Вещественные литералы
Дробные или вещественные литералы используют для записи дробных чисел. Этот тип литералов имеет две формы записи.
Числа с фиксированной точкой – в этой форме целая часть числа отделяется от дробной с помощью точки “.”. Например: 3.1415, -2.0012, 1.137.
Экспоненциальная форма – в такой форме записи, вещественное число имеет мантиссу и порядок.
Число Number = Mantissa ⋅ 10 p, где Mantissa - мантисса, p - порядок, записывается в виде Number = MantissaEp.
Примеры:
1000 = 1 ⋅ 10 3 = 1e3;
23400 = 2.34 ⋅ 10 4 = 2.34e4;
-0.00000056 = -5.6 ⋅ 10 -7 = -5.6e-7;
В экспоненциальной форме записи, регистр символа Е не имеет значения.
double pi = 3.141592;
double x = 1.542e-9;
double k = 9.78e12;
Символьные литералы
Для записи отдельных букв(символов), я в зыке C#, используются символьные литералы. Символы представляются в одинарных кавычках: ‘a’, ‘x’, ‘%’.
Кроме обычных символов, в C#, есть так званые, управляющие последовательности(escape sequence). Они предназначены для представления специальных символов, записываются как обратный слэш, за которым расположен символ.
Наиболее распространенные Escape-последовательности:
Управляющая последовательность | Значение |
---|---|
\b | Backspace |
\n | Переход на новую строку |
\r | Возврат каретки |
\t | Горизонтальная табуляция |
\v | Вертикальная табуляция |
\’ | Одиночная кавычка(апостроф) |
\” | Двойная кавычка |
\\ | Обратный слэш |
\xHH | Символ ASCII в шестнадцатеричной нотации |
\uHH | Символ Unicode в шестнадцатеричной нотации |
Использование управляющих последовательностей:
char c = 'D';
Console.Write('\t'); //вывод символа табуляции
Console.Write('\n'); //переход на новую строку
Console.Write('\x64'); //символ @
Console.Write('\u263A'); //смайл '☺'
Строковые литералы
Строковые литералы – строка символов записанная в двойные кавычки. В строковых литералах также можно использовать управляющие последовательности.
string emptyString = ""; //пустая строка
string name = "Оксана";
Console.WriteLine("123\t456");
Console.WriteLine("Привет\nМир");
Console.WriteLine("Так можно вывести смайл - \u263A");
Массивы-литералы
Массивы-литералы предназначены для инициализации массива. Можно использовать две формы записи: с указанием типа данных и без типа.
int[] arr1 = new int[] { 1, 2, 3, 4, 5 };
int[] arr2 = new[] { 10, 20, 30, 40, 50 };
Объектные литералы
Используются для инициализации объектов.
К примеру для класса
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
объектный литерал будет иметь форму:
Person user = new Person { Name = "Artem", Age = 21 };
null-литерал
null – особенный ссылочный тип литерала, указывает на отсутствие значения(то есть указывает на то, что переменной не задано значений, или объект отсутствует).
string s1 = null; //у строки нет значения
string s2 = ""; //пустая строка
string s3 = null;
Console.WriteLine(s1 == s2); //выведет False, потому что, пустая строка и строка без значения не одно и то же самое.
Console.WriteLine(s1 == s3); //выведет True