Les guillemets doubles peuvent être échappés comme ceci:
string test = @"He said to me, ""Hello World"". How are you?";
Mais cela implique d'ajouter le caractère "
à la chaîne. Existe-t-il une fonction C # ou une autre méthode permettant d’échapper aux guillemets afin qu’aucune modification de la chaîne ne soit requise?
Non.
Utilisez les littéraux de chaîne textuels que vous avez ou échappez le "
à l’aide de la barre oblique inversée.
string test = "He said to me, \"Hello World\" . How are you?";
La chaîne n'a pas changé dans les deux cas - il y a un seul échappé"
en elle. C'est juste une façon de dire à C # que le caractère fait partie de la chaîne et non un terminateur de chaîne.
Vous pouvez utiliser une barre oblique inversée dans les deux sens.
_string str = "He said to me, \"Hello World\". How are you?";
_
Il imprime;
_He said to me, "Hello World". How are you?
_
qui est exactement la même impression avec;
_string str = @"He said to me, ""Hello World"". How are you?";
_
Voici un DEMO
.
_"
_ fait toujours partie de votre chaîne.
Départ Escape Sequences
et String literals
de MSDN.
En C #, vous pouvez utiliser la barre oblique inverse pour insérer des caractères spéciaux dans votre chaîne. Par exemple, pour mettre ", vous devez écrire \". Vous écrivez un grand nombre de caractères à l'aide de la barre oblique inverse: Barre oblique inverse avec un numéro:
Barre oblique inverse avec un autre caractère
Vous vous trompez d'échapper.
Les caractères supplémentaires "
font partie du littéral de chaîne; ils sont interprétés par le compilateur comme un single"
.
La valeur réelle de votre chaîne est toujours He said to me , "Hello World".How are you ?
, comme vous le verrez si vous l’imprimez au moment de l’exécution.
S'il vous plaît expliquer votre problème. Vous dites:
Mais cela implique l’ajout de caractère "à la chaîne.
Quel problème est-ce? Vous ne pouvez pas taper string foo = "Foo"bar"";
, car cela invoquerait une erreur de compilation. Quant à la partie ajout, en termes de taille de chaîne, ce n'est pas vrai:
@"""".Length == "\"".Length == 1