在新的C#6字符串语法中转义引号

Nat*_*n A 47 c# c#-6.0

我对C#6中的新功能感到非常兴奋,包括新的字符串语法:

var fullName = $"My Name is {FirstName} {LastName}";
Run Code Online (Sandbox Code Playgroud)

但是,我无法弄清楚如何在括号内转义引号来执行以下操作:

bool includePrefix = true;

var fullName = $"My name is {includePrefix ? "Mr. " : ""}{FirstName} {LastName}";
Run Code Online (Sandbox Code Playgroud)

C#6不喜欢这样.String.Format在第二种情况下,我不得不恢复使用.是否可以使用新语法来转义引号?

更新:是的,我已尝试使用\转义,但它无法识别.

Jon*_*lis 78

包装你的逻辑括号内,里面的括号:

var fullName = $"My name is {(includePrefix ? "Mr. " : "")}{FirstName} {LastName}";
Run Code Online (Sandbox Code Playgroud)


i3a*_*non 19

定期逃避引号你需要使用斜杠(即\").

但是,这不是问题,因为你不需要逃避,你只是在表达式上缺少括号.

这有效:

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