Je suis vraiment enthousiasmé 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 des 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û revenir à l’utilisation de Ssortingng.Format
dans ce second cas. Est-il possible d’échapper aux guillemets en utilisant la nouvelle syntaxe?
Mise à jour: Oui, j’ai essayé d’utiliser le \
escape, mais ce n’est pas reconnu.
enroulez votre logique entre parenthèses, entre crochets:
var fullName = $"My name is {(includePrefix ? "Mr. " : "")}{FirstName} {LastName}";
Pour échapper aux guillemets, vous devez utiliser une barre oblique (c.-à-d. \"
).
Cependant, ce n’est pas le problème ici, car vous n’avez pas besoin de vous échapper, vous ne faites que manquer de parenthèses au-dessus de l’expression.
Cela marche:
bool includePrefix = true; var fullName = $"My name is {(includePrefix ? "Mr. " : "")}{FirstName} {LastName}";