Книга: C# для профессионалов. Том II

Последовательности кодирования

Последовательности кодирования

C# использует тот же метод кодирования специальных символов, что и C++,— с помощью обратной наклонной черты. Вот список кодирования:

Последовательность Имя символа Кодировка Unicode
' Одиночная кавычка 0x0027
" Двойная кавычка 0x0022
Обратный слэш 0х005C
  Null 0x0000
a Сигнал 0x0007
b Возврат на одну позицию 0x0008
f Перевод страницы 0x000C
n Новая строка 0x000A
r Возврат каретки 0x000D
t Горизонтальная табуляция 0x0009
v Вертикальная табуляция 0x000B

Это по сути означает, что в C# используются те же коды, что и в C++, за исключением того, что C# не распознает ?.

Имеются два отличия между символами кодирования в C++ и C#:

? Последовательность кодирования распознается в C#. Однако она не используется как терминатор строки в C# и поэтому может встраиваться в строку. Строки C# работают, сохраняя отдельно свои длины, поэтому никакой символ не используется в качестве терминатора. Поэтому строки C# в действительности могут содержать любой символ Unicode.

? C# имеет дополнительную последовательность кодирования uxxxx (или эквивалентно Uxxxx), где xxxx представляет 4-символьное шестнадцатеричное число, uxxxx представляет символ Unicode xxxx, например, u0065 представляет 'е'. Однако в отличие от других последовательностей кодирования uxxxx может использоваться в именах переменных, а также в символьных и строковых константах. Например, следующий код допустим в C#.

int Ru0065sult; // тот же результат, что и int Result;
Result = 10;

Согласно документации последовательность кодирования не зависит от регистра символов: uxxxx и Uxxxx будут эквивалентны. Однако при написании этой книги обнаружилось, что только версия нижнего регистра успешно компилируется текущей версией .NET.

C# имеет также альтернативный метод представления строк, который более удобен для строк, содержащих специальные символы: размещение символа @ в начале строки избавляет все символы от кодирования. Эти строки называются дословными строками. Например, чтобы представить строку C:BookChapter2 можно написать либо "C:BookChaptеr2", либо @"C:BookChapter2". Интересно, что это означает также, что можно включать символы возврата каретки в дословные строки без кодирования:

string Message = @"Это будет на первой строке,
а это будет на следующей строке"

Оглавление книги


Генерация: 1.467. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз