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