Ответ 1
Попробуйте это ( "вместо" для выхода)
string templateString = @"
{0}
""{1}""
{2}
";
Из спецификации С#: http://msdn.microsoft.com/en-us/library/Aa691090
цитата-спусковая последовательность: ""
Мне нужно распечатать
a
"b"
c
со строкой vebatim, я задал еще один вопрос о шаблоне с несколькими строками здесь.
Я попытался с дословной строкой следующим образом:
using System;
class DoFile {
static void Main(string[] args) {
string templateString = @"
{0}
\\"{1}\\"
{2}
";
Console.WriteLine(templateString, "a", "b", "c");
}
}
Но я получил эту ошибку.
t.cs(8,11): error CS1525: Unexpected symbol `{'
t.cs(9,0): error CS1010: Newline in constant
t.cs(10,0): error CS1010: Newline in constant
\"{1}\"
тоже не работает.
Что случилось?
Попробуйте это ( "вместо" для выхода)
string templateString = @"
{0}
""{1}""
{2}
";
Из спецификации С#: http://msdn.microsoft.com/en-us/library/Aa691090
цитата-спусковая последовательность: ""
В текстовом литерале строки вы используете ""
для двойных кавычек.
string line = @"
{0}
""{1}""
{2}";
При использовании многострочного строкового литерала в С# с @"
правильная escape-последовательность для двойной кавычки становится ""
вместо \"
.
string templateString = @"
{0}
""{1}""
{2}
";
В стенографической строке используйте ""
для "
в результате.
string templateString = @"
{0}
""{1}""
{2}
";
EDIT: Обновлен, чтобы показать правильный синтаксис при использовании Verbatim.
В строке @"
встроенные двойные кавычки экранируются как ""
, а не \"
. Измените свой код на
string templateString = @"
{0}
""{1}""
{2}
";
и ваши проблемы должны исчезнуть.
Используйте "двойную двойную" цитату для создания одной двойной кавычки на выходе. Точно так же старый VB6 обрабатывал строки.
@" ""something"" is here";
содержит строку с кавычками вокруг чего-то.