Je suis vraiment excité par les nouvelles fonctionnalités de C # 6, y compris la nouvelle syntaxe de chaîne:
var fullName = $"My Name is {FirstName} {LastName}";
Cependant, je ne peux pas comprendre comment échapper les guillemets à l'intérieur des accolades pour faire ce qui suit:
bool includePrefix = true;
var fullName = $"My name is {includePrefix ? "Mr. " : ""}{FirstName} {LastName}";
C # 6 n'aime pas ça. J'ai dû recommencer à utiliser String.Format
dans ce deuxième cas. Est-il possible d'échapper aux guillemets en utilisant la nouvelle syntaxe?
Mise à jour: oui, j'ai essayé d'utiliser le \
s'échapper, mais ce n'est pas reconnu.
mettez votre logique entre parenthèses, à l'intérieur les crochets:
var fullName = $"My name is {(includePrefix ? "Mr. " : "")}{FirstName} {LastName}";
Pour échapper régulièrement aux guillemets, vous devez utiliser une barre oblique (c'est-à-dire \"
).
Cependant, ce n'est pas le problème ici, car vous n'avez pas besoin de vous échapper, il manque juste des parenthèses sur l'expression.
Cela marche:
bool includePrefix = true;
var fullName = $"My name is {(includePrefix ? "Mr. " : "")}{FirstName} {LastName}";