Российский Государственный Технологический Университет им. К.Э. Циолковского
Опубликован: 02.03.2007 | Доступ: свободный | Студентов: 5636 / 790 | Оценка: 3.96 / 3.45 | Длительность: 27:04:00
ISBN: 978-5-9556-0086-4
Лекция 2:

Система типов

< Лекция 1 || Лекция 2: 123456 || Лекция 3 >

Литералы. Представление значений

В программах на языках высокого уровня (C# в том числе) литералами называют последовательности входящих в алфавит языка программирования символов, обеспечивающих явное представление значений, которые используются для обозначения начальных значений в объявлении членов классов, переменных и констант в методах класса.

Различаются литералы арифметические (разных типов), логические, символьные (включая Escape-последовательности), строковые.

Арифметические литералы

Арифметические литералы кодируют значения различных (арифметических) типов. Тип арифметического литерала определяется следующими интуитивно понятными внешними признаками:

  • стандартным внешним видом. Значение целочисленного типа обычно кодируется интуитивно понятной последовательностью символов ' 1 ', ..., ' 9 ', ' 0 '. Значение плавающего типа также предполагает стандартный вид (точка-разделитель между целой и дробной частью, либо научная или экспоненциальная нотация – 1.2500E+052). Шестнадцатеричное представление целочисленного значения кодируется шестнадцатеричным литералом, состоящим из символов ' 0 ', ..., ' 9 ', а также ' a ', ..., ' f ', либо ' A ', ..., ' F ' с префиксом ' 0x ';
  • собственно значением. 32768 никак не может быть значением типа short;
  • дополнительным суффиксом. Суффиксы l, L соответствуют типу long; ul, UL – unsigned long; f, F – float; d, D – decimal. Значения типа double кодируются без префикса.

Логические литералы

К логическим литералам относятся следующие последовательности символов: true и false. Больше логических литералов в C# нет.

Символьные литералы

Это заключенные в одинарные кавычки вводимые с клавиатуры одиночные символы: ' X ', ' p ', ' Q ', ' 7 ', а также целочисленные значения в диапазоне от 0 до 65535, перед которыми располагается конструкция вида (char) – операция явного приведения к типу char: (char)34 – ' '' ', (char)44 – ' ,', (char)7541 – какой символ будет здесь – не ясно.

Символьные Escape-последовательности

Следующие заключенные в одинарные кавычки последовательности символов являются Escape-последовательностями. Эта категория литералов используется для создания дополнительных эффектов (звонок), простого форматирования выводимой информации и кодирования символов при выводе и сравнении (в выражениях сравнения).

\a Предупреждение (звонок)
\b Возврат на одну позицию
\f Переход на новую страницу
\n Переход на новую строку
\r Возврат каретки
\t Горизонтальная табуляция
\v Вертикальная табуляция
\0 Ноль
\' Одинарная кавычка
\" Двойная кавычка
\\ Обратная косая черта

Строковые литералы

Это последовательность символов и символьных Escape-последовательностей, заключенных в двойные кавычки.

Verbatim string – строковый литерал, интерпретируемый компилятором так, как он записан. Escape-последовательности воспринимаются строго как последовательности символов.

Verbatim string представляется при помощи символа @, который располагается непосредственно перед строковым литералом, заключенным в парные двойные кавычки. Представление двойных кавычек в Verbatim string обеспечивается их дублированием. Пара литералов (второй – Verbatim string )

..."c:\\My Documents\\sample.txt"...
...@"c:\My Documents\sample.txt"...

имеют одно и то же значение:

c:\My Documents\sample.txt

Представление двойных кавычек внутри Verbatim string достигается за счет их дублирования:

...@"""Focus"""

имеет значение

"Focus"

Строковые литералы являются литералами типа string.

< Лекция 1 || Лекция 2: 123456 || Лекция 3 >
kewezok kewezok
kewezok kewezok
Елена Шляхт
Елена Шляхт
Объясните плиз в чем отличие а++ от ++а
Почему результат разный?
int a=0, b=0;
Console.WriteLine(a++); //0
Console.WriteLine(++b); //1
a++;
++b;
Console.WriteLine(a); //2
Console.WriteLine(b); //2