共用方式為


原始字串常值文字:字串常值中的 """

原始字串常值會以至少三個 (") 雙引號字元開頭和結尾:

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

原始字串常值可以跨越多行:

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

C# 語言參考資料記錄了 C# 語言最新版本。 同時也包含即將推出語言版本公開預覽功能的初步文件。

文件中標示了語言最近三個版本或目前公開預覽版中首次引入的任何功能。

小提示

欲查詢某功能何時首次在 C# 中引入,請參閱 C# 語言版本歷史的條目。

以下規則規範多行原始字串字面值的解釋:

  • 開頭引號必須是其行上的最後一個非空格字元,而右引號必須是其行上的第一個非空格字元。
  • 結尾引號左邊的任何空白字元都會從所有原始字串常值的行中移除。
  • 同一行中開頭引號後面的任何空格都會被忽略。
  • 開頭引號後僅留白的行則包含在字串字面中。
  • 結尾引號之前的換行符不會包含在文字串中。
  • 當同一行的空白位於結尾分隔符之前時,每行內容行的開頭必須有精確數量與種類的空白字元(例如空格與制表符)。 具體來說,空格與水平定位符不匹配,反之亦然。

如果你在縮排程式碼時保持一致使用制表符(U+0009)或空格U+0020(),包括原始字串字面值,最後一條規則就很簡單。 你可以用任何一種,但不要在同一個多行原始字串裡混在一起。 例如,以下宣告是合法的(空白字元和制表字元的空白處都畫\b\t出:)

// Using `\b` and `\t` to visual the actual whitespace characters
var xml = """
\b\b\b\b<element attr="content">
\b\b\b\b\b\b<body>
\b\b\b\b\b\b</body>
\b\b\b\b</element>
\b\b\b\b""";

// Using `\b` and `\t` to visual the actual whitespace characters
var xmlTabs = """
\t\t\t\t<element attr="content">
\t\t\t\t\t\t<body>
\t\t\t\t\t\t</body>
\t\t\t\t</element>
\t\t\t\t""";

然而,由於以下宣告未對閉尾 """左側的空白區域使用一致格式,該宣告無效:

// Using `\b` and `\t` to visual the actual whitespace characters
var xml = """
\t\b\b\b<element attr="content">
\b\t\b\b\b\b<body>
\b\b\t\b\b\b</body>
\b\b\b\t</element>
\b\b\b\b""";

小提示

Visual Studio 和 C# 開發套件會在原始字串常值包含 JSON 資料或規則運算式時,提供一些驗證和語法醒目提示。

這些工具會解析文字。 如果工具確信文字代表 JSON 或規則運算式,編輯器會提供語法著色。

您可以在聲明上方新增註解,以指示格式,以改善該體驗:

  • // lang=json 表示原始字串常值代表 JSON 資料。
  • // lang=regex 表示原始字串常值代表正則表示式。

當原始字串常值用作引數時,其中參數使用 來 System.Diagnostics.CodeAnalysis.StringSyntaxAttribute 指示格式,這些工具會驗證某些格式類型的原始字串常值。 支援 JSON 和正則運算式。

對於某些格式,註解或屬性會啟用程式碼建議,根據格式提供字串常值的修正。

您可能需要建立具有三個以上連續雙引號字元的原始字串常值。 可以用至少三個雙引號字元的序列開頭和結尾原始字串常值。 當字串常值包含三個連續雙引號時,您會以四個雙引號字元開始和結束原始字串常值:

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.
               """";

原始字串常值也可以與插補字串結合,以在輸出字串中內嵌 {} 字元。 您可以在差補原始字串常值中使用多個 $ 字元,在輸出字串中內嵌 {} 字元,而無需逸出這些字元。

原始字串常值的內容不能包含一組連續的 " 字元,其長度等於或大於原始字串常值分隔符號長度。 例如,"""" """ """"""""""" """""" """"" """" """ """"""" 的字串格式良好。 然而,弦""" """ """""" """" """樂和弦樂並不完美。

另請參閱