Новая строка в дословном строковом литерале
У меня есть строка следующим образом:
string example = @"string str = ""forty-two"";
char pad = '*';
выход
string str = "forty-two"; char pad = '*';
в одной строке. Мне нужен вывод как follwos
string str = "forty-two";
char pad = '*';
Как я могу вставить новую строку перед 'char pad' в этом дословном строковом литерале
1 ответ
В буквальном строковом литерале, кроме двух двойных кавычек, все управляющие символы интерпретируются дословно, поэтому, если вам нужна двухстрочная строка, вы должны вручную написать ее в две строки:
string example = @"string str = ""forty-two"";
char pad = '*';";
Console.WriteLine(example); // string str = "forty-two";
// char pad = '*';
Из MSDN:
Строковый литерал, такой как @"c:\Foo", называется дословным строковым литералом. В основном это означает, что "не применяйте никаких интерпретаций к символам, пока не будет достигнут следующий символ кавычки". Таким образом, буквальный строковый литерал может содержать обратную косую черту (без их удвоения) и даже разделители строк. Чтобы получить двойные кавычки (") в дословном литерале, вам нужно просто удвоить его, например, @" Меня зовут "" Джон "" "представляет строку" Меня зовут "Джон. Строковые литералы дословно, которые содержат разделители строк также будет содержать пробелы в начале строки, поэтому я не буду использовать их в тех случаях, когда пробелы имеют значение. Они очень удобны для включения XML или SQL в ваш исходный код, хотя и другое типичное использование (который не нуждается в разделителях строк) для указания пути к файловой системе.
Стоит отметить, что это никак не влияет на саму строку: строка, указанная в качестве буквального строкового литерала, в точности совпадает со строкой, указанной в качестве обычного строкового литерала, с соответствующим экранированием. Отладчик иногда выбирает отображение строки как дословного строкового литерала - это делается исключительно для удобства просмотра содержимого строки, не беспокоясь о экранировании.
[Автор: Джон Скит]