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

Escaping Quotes inside new C# 6 String Syntax

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

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

但是,我不知道如何转义大括号内的引号以执行以下操作:

bool includePrefix = true;

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

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

更新:是的,我试过使用 \ 转义,但无法识别。

将您的逻辑包裹在括号内, 括号内:

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

通常需要使用斜线来转义引号(即 \")。

然而,这不是这里的问题,因为您不需要转义,您只是在表达式上缺少括号。

这个有效:

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