Литералы

Литералы


Содержание



1. Что такое литералы в языке C#? Примеры литералов.

Литералы – это постоянные значения, которые представляются в удобной для восприятия форме.

Примеры литералов:

250 - целочисленный литерал типа int
's' - литерал символьного типа char
'@' - литерал символьного типа char
11.235 - литерал с плавающей запятой типа double
"Text" - литерал строчного типа string

 


2. Какого типа могут быть литералы?

Литералы могут быть любого простого типа. Представление любого литерала зависит от конкретного типа.

В зависимости от значения литералы могут быть:

  • целочисленных типов — int, uint, long, ulong;
  • типов с плавающей точкой — float, double, decimal ;
  • символьного типа char;
  • строчного типа string.

 


3. Как представляются целочисленные литералы?

По умолчанию, все целочисленные литералы имеют тип int:

Примеры литералов типа int:

28
39982
-990

Для того чтобы литерал имел тип long к нему нужно добавить суффикс ‘l‘ или ‘L‘. Примеры литералов типа long:

28L
39982l
-30l

Для того чтобы литерал имел беззнаковый целочисленный тип к нему нужно добавить суффикс ‘u‘ или ‘U‘. Примеры литералов типа uint:

28u
0U
1500U

Примеры литералов типа ulong:

200u
1234567UL
45600009uL

 


4. Можно ли целочисленные литералы присваивать переменным типа byte, sbyte, short и ushort?

Можно, но при условии, что присваиваемое значение может быть представлено целочисленным типом.

Пример:

byte b;
sbyte sb;
short s;
ushort us;

b = 20;
sb = 30;
s = -30;
us = 100;

// Ошибка переполнения: "Constant value cannot be converted to 'sbyte'"
// sb = 130;

 


5. Каким образом представляются литералы, принадлежащие к типам с плавающей запятой?

По умолчанию, литералы типа с плавающей запятой относятся к типу double. Кроме того, к литералам типа double можно прибавлять суффикс ‘d‘ или ‘D‘ (это ничего не меняет).

Примеры литералов типа double:

278.39904
-42000.4
-42000.4D
0.0d
1E6
5.6e-3

Если нужно, чтобы литерал имел тип float, к нему нужно добавить суффикс ‘f‘ или ‘F‘. Примеры литералов типа float:

28.5f
28.5F
-600.321235F

Если нужно, чтобы литерал имел тип decimal, то к нему прибавляется суффикс ‘m‘ или ‘M‘. Примеры литералов типа decimal:

2084797985789.88m
-9.3886M
3049595882M

 


6. Как осуществляется присвоение значения литералов переменным типов float и decimal?

Пример описания и присвоения значения литералов переменным, которые принадлежат к типам с плавающей запятой:

float f;
double d;
decimal x;

f = -600.321235F;
d = 1e9; // d = 1000000000
d = -2.2E-5; // d = -0.000022
x = 3049595882M;

 


7. Как представляются значения целочисленных литералов в шестнадцатеричной системе исчисления?

Язык C# разрешает также представлять целочисленные литералы в шестнадцатеричной системе исчисления. Шестнадцатеричные литералы должны начинаться с символов «0x«.

В этих литералах используются числа от 0 до 9, а также буквы от ‘А‘ к ‘F‘.

Примеры представления литералов в шестнадцатеричной системе исчисления:

0xFFFF
0x10
0xaddf8
0Xaddf8
0XE

 


8. Как представляются символьные литералы (char)?

Символьные литералы принадлежат к типу char. Символьные литералы берутся в одинарные кавычки.

Примеры символьных литералов:

'A'
'#'
'-'

К символьным литералам также относятся управляющие последовательности символов, которые еще называются константами с обратной косой чертой. Отображение таких символов вызывает некоторые трудности.

Примеры управляющих последовательностей символов:

\a - звуковой сигнал
\b - возврат на одну позицию
\f - переход на новую страницу
\n - новая строка (перевод строки)
\r - возврат каретки
\t - горизонтальная табуляция
\v - вертикальная табуляция
\0 - пустой символ
\' - одинарная кавычка
\" - двойная кавычка
\\ - обратная косая черта

Пример использования в программе управляющих последовательностей:

char symbol;
symbol = '\t'; // горизонтальная табуляция
symbol = '\\'; // обратная косая черта

 


9. Как представляются строчные литералы?

В языке C# строчный литерал представляет собой набор символов, взятых в двойные кавычки. Примеры строчных литералов

"Это строчный литерал"
"This is a text"
"1234567890"
"First\n\tSecond\n\tThird\n\t"
""

Если нужно задать в виде литерала следующий путь:

C:\Programs\myfile.txt

то он будет иметь такой вид:

"C:\\Programs\\myfile.txt"

Пример описания переменной типа строчный литерал, в которой задается путь к файлу:

string path = "c:\\programs\\c_sharp\\myfile.txt";

 


10. Какой вид имеет буквальный строчный литерал?

Буквальный строчный литерал начинается с символа @ после которого следует строка в кавычках. Содержимое буквального строчного литерала принимается без изменений и может быть расширено до двух и более строк.

Например:

string str = @"Буквальный
строчный
литерал";

В буквальный строчный литерал можно включить управляющие символы (табуляция, новая строка и т.п.) не применяя управляющие последовательности.

 


Связанные темы