C# Language                
            Строковые escape-последовательности
        
        
            
    Поиск…
Синтаксис
- \ '- одинарная кавычка (0x0027)
- \ "- двойная кавычка (0x0022)
- \\ - обратная косая черта (0x005C)
- \ 0 - null (0x0000)
- \ a - alert (0x0007)
- \ b - backspace (0x0008)
- \ f - подача формы (0x000C)
- \ n - новая строка (0x000A)
- \ r - возврат каретки (0x000D)
- \ t - горизонтальная вкладка (0x0009)
- \ v - вертикальная вкладка (0x000B)
- \ u0000 - \ uFFFF - символ Юникода
- \ x0 - \ xFFFF - символ Юникода (код с переменной длиной)
- \ U00000000 - \ U0010FFFF - символ Юникода (для генерации суррогатов)
замечания
Последовательности escape-последовательности строк преобразуются в соответствующий символ во время компиляции . Обычные строки, которые содержат обратную косую черту, не преобразуются.
 Например, строки notEscaped и notEscaped2 ниже не преобразуются в символ новой строки, а остаются как два разных символа ( '\' и 'n' ). 
string escaped = "\n";
string notEscaped = "\\" + "n";
string notEscaped2 = "\\n";
Console.WriteLine(escaped.Length); // 1
Console.WriteLine(notEscaped.Length); // 2            
Console.WriteLine(notEscaped2.Length); // 2
Управляющие последовательности символов Unicode
string sqrt = "\u221A";      // √
string emoji = "\U0001F601"; // 😁
string text = "\u0022Hello World\u0022"; // "Hello World"
string variableWidth = "\x22Hello World\x22"; // "Hello World"
Выделение специальных символов в символьных литералах
Апострофы
char apostrophe = '\'';
бэкслэш
char oneBackslash = '\\';
Выделение специальных символов в строковых литералах
бэкслэш
// The filename will be c:\myfile.txt in both cases
string filename = "c:\\myfile.txt";
string filename = @"c:\myfile.txt";
Во втором примере используется строковый литерал , который не обрабатывает обратную косую черту как escape-символ.
Цитаты
string text = "\"Hello World!\", said the quick brown fox.";
string verbatimText = @"""Hello World!"", said the quick brown fox.";
Обе переменные будут содержать один и тот же текст.
«Привет, мир!», - сказала быстрая коричневая лиса.
Newlines
Вербальные строковые литералы могут содержать символы новой строки:
string text = "Hello\r\nWorld!";
string verbatimText = @"Hello
World!";
Обе переменные будут содержать один и тот же текст.
Неопознанные escape-последовательности создают ошибки времени компиляции
Следующие примеры не будут компилироваться:
string s = "\c";
char c = '\c';
 Вместо этого они будут генерировать ошибку Unrecognized escape sequence во время компиляции. 
Использование escape-последовательностей в идентификаторах
 Последовательности Escape не ограничиваются string и char символами. 
Предположим, вам необходимо переопределить сторонний метод:
protected abstract IEnumerable<Texte> ObtenirŒuvres();
 и предположим, что символ Œ недоступен в кодировке символов, используемой для исходных файлов C #. Вам повезло, разрешено использовать \U######## типа \u#### или \U######## в идентификаторах кода. Так что законно писать: 
protected override IEnumerable<Texte> Obtenir\u0152uvres()
{
    // ...
}
 и компилятор C # будет знать, что Œ и \u0152 являются \u0152 и тем же символом. 
(Тем не менее, может быть хорошей идеей переключиться на UTF-8 или аналогичную кодировку, которая может обрабатывать все символы.)