Литералы

Литерал(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

Смотрите также: