Подтвердить что ты не робот

Ввод\"в стенографической строке с С#

Мне нужно распечатать

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}\" тоже не работает.

Что случилось?

4b9b3361

Ответ 1

Попробуйте это ( "вместо" для выхода)

string templateString = @"
        {0}
        ""{1}""
        {2}
        ";

Из спецификации С#: http://msdn.microsoft.com/en-us/library/Aa691090

цитата-спусковая последовательность:     ""

Ответ 2

В текстовом литерале строки вы используете "" для двойных кавычек.

string line = @"
{0}
""{1}""
{2}";

Ответ 3

При использовании многострочного строкового литерала в С# с @" правильная escape-последовательность для двойной кавычки становится "" вместо \".

    string templateString = @"
    {0}
    ""{1}""
    {2}
    ";

Ответ 4

В стенографической строке используйте "" для " в результате.

Ответ 5

string templateString = @"        
{0}        
""{1}""
{2}
";

EDIT: Обновлен, чтобы показать правильный синтаксис при использовании Verbatim.

Ответ 6

В строке @" встроенные двойные кавычки экранируются как "", а не \". Измените свой код на

    string templateString = @"
    {0}
    ""{1}""
    {2}
    ";

и ваши проблемы должны исчезнуть.

Ответ 7

Используйте "двойную двойную" цитату для создания одной двойной кавычки на выходе. Точно так же старый VB6 обрабатывал строки.

@" ""something"" is here"; 

содержит строку с кавычками вокруг чего-то.