原始字符串字面量 - 字符串字面量中的 """

原始字符串字面量以至少三个双引号 (") 字符开始和结束:

var singleLine = """This is a "raw string literal". It can contain characters like \, ' and ".""";

原始字符串字面量可以包含多行:

var xml = """
        <element attr="content">
            <body>
            </body>
        </element>
        """;

以下规则控制多行原始字符串字面量的解释:

  • 左引号必须是其各自行上的最后一个非注释标记,右引号必须是其各自行上的第一个非注释标记。
  • 右引号左侧的任何空格将从原始字符串字面量的所有行中删除。
  • 将忽略同一行中左引号后面的空格。
  • 字符串字面量中仅包含左引号后面的空格行。
  • 如果在同一行的结束分隔符之前有空白字符(例如空格与制表符),则每行内容的开头必须有确切数量和类型的空白字符。 具体而言,空格与水平制表符不匹配,反之亦然。

可能需要创建包含三个或更多连续双引号字符的原始字符串字面量。 原始字符串字面量可以至少三个双引号字符的序列开始和结束。 如果字符串字面量包含三个连续双引号,则以四个双引号字符开始和结束原始字符串字面量:

var moreQuotes = """" As you can see,"""Raw string literals""" can start and end with more than three double-quotes when needed."""";

如果需要以引号字符开始或结束原始字符串字面量,请使用多行格式:

var MultiLineQuotes = """"
               """Raw string literals""" can start and end with more than three double-quotes when needed.
               """";

原始字符串字面量还可以与内插字符串结合使用,以在输出字符串中嵌入 {} 字符。 在内插的原始字符串字面量中使用多个 $ 字符,以在输出字符串中嵌入 {} 字符,而无需对这些字符进行转义。

原始字符串字面量的内容不得包含一组长度等于或大于原始字符串字面量分隔符长度的连续 " 字符。 例如,字符串 """" """ """"""""""" """""" """"" """" """ """"""" 的格式就很标准。 但是,字符串 """ """ """""" """" """ 的格式就不正确

原始字符串字面量是在 C# 11 中引入的。

另请参阅