Posso evitare una doppia virgoletta in una stringa letterale letterale?


534

In una stringa letterale letterale (@ "pippo") in C #, le barre rovesciate non vengono trattate come escape, quindi fare \ "per ottenere una doppia virgoletta non funziona. Esiste un modo per ottenere una doppia virgoletta in una stringa letterale letterale ?

Questo comprensibilmente non funziona:

string foo = @"this \"word\" is escaped";

Risposte:


870

Usa una doppia citazione duplicata.

@"this ""word"" is escaped";

uscite:

this "word" is escaped

Sto cercando di utilizzare @ Html.Raw () e la citazione quadrupla rompe la mia stringa
JoshYates1980,

1
Puoi usarlo senza la stringa letterale? Sembra che Html.Raw () si occuperebbe di assicurarsi che sia una stringa per te ...
Myles,

2
E 'anche possibile utilizzarlo in combinazione con interpolazione stringa: $@"this ""{wordVar}"" is escaped";.
fdelia,

113

Usa virgolette doppie.

string foo = @"this ""word"" is escaped";

95

Per aggiungere qualche informazione in più, il tuo esempio funzionerà senza il @simbolo (previene la fuga con \), in questo modo:

string foo = "this \"word\" is escaped!";

Funzionerà in entrambi i modi, ma preferisco lo stile a virgolette doppie per renderlo più semplice, ad esempio con nomi di file (con molti \ nella stringa).


81

Questo dovrebbe aiutare a chiarire qualsiasi domanda tu possa avere: letterali c #

Ecco una tabella dal contenuto collegato:

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.