web-dev-qa-db-fra.com

Puis-je échapper à une double citation dans une chaîne littérale mot à mot?

Dans un littéral de chaîne textuelle (@ "foo") en C #, les barres obliques inverses ne sont pas traitées comme des échappements; par conséquent,\"pour obtenir une citation double ne fonctionne pas. Y a-t-il un moyen d'obtenir une citation double dans une chaîne littérale in extenso ?

Cela ne fonctionne naturellement pas:

string foo = @"this \"Word\" is escaped";
514
kdt

Utilisez une citation double en double.

@"this ""Word"" is escaped";

les sorties:

this "Word" is escaped
849
Myles

Utilisez des guillemets doubles.

string foo = @"this ""Word"" is escaped";
113
Brandon

Pour ajouter quelques informations supplémentaires, votre exemple fonctionnera sans le symbole @ (il empêche l'échappement avec \), de cette façon:

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

Cela fonctionnera dans les deux sens, mais je préfère le style de guillemet double pour qu'il soit plus facile à travailler, par exemple avec les noms de fichiers (avec beaucoup de\dans la chaîne).

94
j.a.estevan

Cela devrait vous aider à clarifier toutes vos questions: c # literals

Voici un tableau du contenu lié:

enter image description here

79
rfonn