Domanda

Ho bisogno di stampare

a
"b"
c

Con la stringa Vebatim, ho posto un'altra domanda sul modello di codice di più riga qui.

Ho provato con la stringa verbatim come segue:

using System;

class DoFile {

    static void Main(string[] args) {
        string templateString = @"
        {0}
        \\"{1}\\"
        {2}
        ";
        Console.WriteLine(templateString, "a", "b", "c");
    }
}

Ma ho ricevuto questo errore.

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}\" Non funziona neanche.

Cosa c'è che non va?

È stato utile?

Soluzione

Prova questo ("" invece di "per fuggire)

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

Dalla specifica C#: http://msdn.microsoft.com/en-us/library/aa691090

citazione-escape-sequence: ""

Altri suggerimenti

In una stringa verbatim letterali che usi "" Per i personaggi a doppia citazione.

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

Quando si utilizza una stringa multilinea letterale in C# con @", la sequenza di fuga corretta per una doppia quota diventa "" invece di \".

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

In una stringa verbatim, usa "" per un " nel risultato.

In un @" stringa, doppie citazioni incorporate vengono sfuggite come "",non \". Cambia il tuo codice in

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

E i tuoi problemi dovrebbero andare via.

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

Modifica: aggiornato per mostrare la sintassi corretta quando si utilizza verbatim.

Usa una preventivo "doppia doppia" per produrre una singola doppia preventivo nell'output. È allo stesso modo il vecchio VB6 elaborerebbe le stringhe.

@" ""something"" is here"; 

Contiene una stringa che ha citazioni attorno a qualcosa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top