原始字串常值文字:字串常值中的
原始字串常值會以至少三個 (") 雙引號字元開頭和結尾:
var singleLine = """This is a "raw string literal". It can contain characters like \, ' and ".""";
原始字串常值可以跨越多行:
var xml = """
<element attr="content">
<body>
</body>
</element>
""";
下列規則會控管多行原始字串常值的解譯:
- 開頭引號必須是其行上的最後一個非空格字元,而右引號必須是其行上的第一個非空格字元。
- 結尾引號左邊的任何空白字元都會從所有原始字串常值的行中移除。
- 同一行中開頭引號後面的任何空格都會被忽略。
- 字串常值中只包含開頭引號後面的空白字元。
- 如果空白字元在相同行的結尾分隔符前面,則每個內容行的開頭必須有空白字元的確切數量和種類(例如,空格與製表符)。 具體來說,空格與水平定位符不匹配,反之亦然。
- 結尾引號之前的換行符不會包含在文字串中。
小提示
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.
"""";
原始字串常值也可以與插補字串結合,以在輸出字串中內嵌 { 和 } 字元。 您可以在差補原始字串常值中使用多個 $ 字元,在輸出字串中內嵌 { 和 } 字元,而無需逸出這些字元。
原始字串常值的內容不能包含一組連續的 " 字元,其長度等於或大於原始字串常值分隔符號長度。 例如,"""" """ """" 和 """"""" """""" """"" """" """ """"""" 的字串格式良好。 不過,""" """ """ 和 """ """" """ 字串的格式不正確