8
votes

Ajout d'une chaîne au littéral de chaîne de verbatim

J'ai un chemin qui s'appelle defaultpath Je veux l'ajouter à ce littéral de chaîne Verbatim, mais peut tout à fait obtenir les citations autour de lui.

   "C:\Mavro\MavBridge\Server\MavBridgeService.exe" /service /data "..\" + defaultPath


3 commentaires

Bienvenue en arrière, esprit si j'essaie de vous aider à nouveau ... Cela semble que nous continuons d'hier suis-je correct?


Pourquoi tu ne sauves-tu pas tes yeux? Créez une fonction citronomique () et de les concaténer de quelque part que vous aimez ...


Haha oui à peu près! J'ai fait de bons progrès la nuit dernière!


3 Réponses :


13
votes

le faire comme ceci (préféré): xxx

ou comme ceci: xxx


Le premier utilise string.format , qui fondamentalement Remplace le {0} dans le premier paramètre avec la valeur dans le deuxième paramètre et renvoie le résultat.

Le second utilise la concaténation de la chaîne classique et ce que je faisais là devait retirer les guillemets doubles après la dernière barre oblique inverse ( "" ".. \ au lieu de " "" .. "" ), car vous ne vouliez pas les guillemets après la barre oblique inverse. Vous vouliez les citations après defaultpath . Et c'est ce que ce code fait: il ajoute defaultpath ( "+ defaultpath ) et ajoute la citation de clôture par la suite ( +" \ "" ).


5 commentaires

@heinst: réponse mise à jour. Cela a-t-il un sens pour vous?


J'essayais de faire la deuxième réponse ... Je n'ai juste pas ajouté la deuxième \ ... Pourquoi avez-vous ajouté cela? Autre que ce qu'ils ont à la fois de sens


Pourquoi dites-vous que c'est "préféré"? Personnellement, je trouve un peu une odeur de code que string.format est utilisé pour la concaténation où il ne fait aucune mise en forme réelle. Comme la plupart des choses, cela dépend ...


@heinst: Je suppose que vous parlez de cette partie: "\" "? Serait-ce être plus clair pour vous, si je l'aurais écrit comme @" "" Au lieu de cela? Cela ajoute la citation de fermeture après votre chemin. Sans cela, le résultat serait "C: \ mavro \ mavbridge \ serveur \ mavbridgeservice.exe" / service / données ".. / code> et pas "c: \ mavro \ mavbridge \ serveur \ mavbridgeservice.exe" / service / données ".. \ data.apple"


@ Nicodemus13: Cela dépend, vous avez raison. Mais dans cet exemple, je trouve la version avec string.format beaucoup plus lisible que l'autre.



3
votes

Utiliser string.format pour insérer la variable entre les guillemets: xxx

Il facilite la lecture et la mise en œuvre, vous pouvez remplacer d'autres parties du chemin avec des sections variables dans une autre manière.

Si vous essayez de simplement ajouter la variable "DefaultPath" à la fin, il ne fonctionnera jamais correctement, car vous avez déjà ajouté la fermeture "


0 commentaires

8
votes

Donc, si vous souhaitez profiter de l'interpolation de chaîne avec C # 6, vous pouvez également faire

var randomText = "insert something";
var yourString = $@"A bunch of text in here 
that is on seperate lines
but you want to {randomText }";


1 commentaires

Si vous souhaitez inclure des crochets littéraux, par exemple. Lors de la création d'une chaîne JSON, vous pouvez échapper à ceux en les dupliquant simplement comme des guillemets doubles. Comme: Valeur de chaîne = "Test"; string json = $ @ "{{" "val" ":" "{valeur}" "}}";