web-dev-qa-db-de.com

Escape-Anführungszeichen innerhalb der neuen C # 6-Zeichenfolgensyntax

Ich freue mich sehr über die neuen Funktionen in C # 6, einschließlich der neuen Zeichenfolgensyntax:

var fullName = $"My Name is {FirstName} {LastName}";

Ich kann jedoch nicht herausfinden, wie ich Anführungszeichen in geschweiften Klammern umgehen kann, um Folgendes zu tun:

bool includePrefix = true;

var fullName = $"My name is {includePrefix ? "Mr. " : ""}{FirstName} {LastName}";

C # 6 gefällt das nicht. In diesem zweiten Fall musste ich wieder String.Format Verwenden. Kann man mit der neuen Syntax Anführungszeichen umgehen?

Update: Ja, ich habe versucht, das Escape \ Zu verwenden, aber es wird nicht erkannt.

46
Nathan A

schreibe deine Logik in Klammern, innerhalb die Klammern:

var fullName = $"My name is {(includePrefix ? "Mr. " : "")}{FirstName} {LastName}";
76
Jonesopolis

Um Anführungszeichen zu umgehen, müssen Sie regelmäßig einen Schrägstrich verwenden (d. H. \").

Dies ist hier jedoch nicht der Fall, da Sie nicht entkommen müssen. Es fehlen lediglich Klammern über dem Ausdruck.

Das funktioniert:

bool includePrefix = true;
var fullName = $"My name is {(includePrefix ? "Mr. " : "")}{FirstName} {LastName}";
19
i3arnon