string как часть языка.

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

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

Последовательность Имя символа Кодировка Unicode
' Одиночная кавычка 0x0027
' Двойная кавычка 0x0022
\ Обратный слэш 0х005C
Null 0x0000
a Сигнал 0x0007
 Возврат на одну позицию 0x0008
f Перевод страницы 0x000C
Новая строка 0x000A
Возврат каретки 0x000D
Горизонтальная табуляция 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:\Book\Chaptеr2', либо @'C:BookChapter2'. Интересно, что это означает также, что можно включать символы возврата каретки в дословные строки без кодирования:

string Message = @'Это будет на первой строке,

а это будет на следующей строке'

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату