【问题标题】:Escaping Quotes inside new C# 6 String Syntax在新的 C# 6 字符串语法中转义引号
【发布时间】:2017-03-07 15:58:30
【问题描述】:

我对 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。是否可以使用新语法转义引号?

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

【问题讨论】:

  • 编写一个执行属性字符串逻辑的属性,然后在字符串中使用它。
  • @asawyer 我知道几种解决方法,包括我在问题中所述的一种。我只想知道在这种新语法中是否可以转义。

标签: c# c#-6.0


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    这行得通:

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

    【讨论】:

      猜你喜欢
      • 2016-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多