2015-10-07 6 views
33

Ich bin wirklich begeistert über die neuen Features in C# 6, einschließlich der neuen String-Syntax:Escaping Zitate innerhalb neuer C# 6 String Syntax

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

Allerdings kann ich nicht herausfinden, wie Zitate innen zu entkommen die Klammern die Folge zu tun:

bool includePrefix = true; 

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

C# 6 bedeutet das nicht mögen. Ich musste in diesem zweiten Fall auf String.Format zurückgreifen. Ist es möglich, Zitate mit der neuen Syntax zu umgehen?

Update: Ja, ich habe versucht mit der \ Escape, aber es wird nicht erkannt.

+0

eine Eigenschaft schreiben, die die Eigenschaft String-Logik tut und dann nur, dass statt in der Zeichenkette verwenden. – asawyer

+1

@asawyer Ich kenne mehrere Problemumgehungen, einschließlich einer, die ich in meiner Frage angegeben habe. Ich möchte nur wissen, ob innerhalb dieser neuen Syntax ein Entweichen möglich ist. –

+0

https://msdn.microsoft.com/en-us/library/dn961160.aspx#Anchor_1 –

Antwort

51

wickeln Sie Ihre Logik in Klammern, innen die Klammern:

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

Das ist der Trick! Vielen Dank –

14

regelmäßig Zitate zu entkommen Sie einen Schrägstrich verwenden müssen (das heißt \").

Dies ist jedoch nicht das Problem hier, da Sie nicht entkommen müssen, Sie fehlen nur Klammern über den Ausdruck.

Dies funktioniert:

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