Літерали

Літерал(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("Дем\'ян");
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

Дивіться також: