生文字列リテラルのテキスト - 文字列リテラルの
生文字列リテラルは、少なくとも 3 つの二重引用符 (") 文字で始まり、終わります。
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# Dev Kit では、生の文字列リテラルに JSON データまたは正規表現が含まれている場合に、検証と構文の強調表示がいくつか提供されます。
ツールはテキストを解析します。 ツールでテキストが JSON または正規表現を表していると確信できる場合、エディターは構文の色分けを提供します。
形式を示す宣言の上にコメントを追加することで、そのエクスペリエンスを向上させることができます。
-
// lang=jsonは、生の文字列リテラルが JSON データを表します。 -
// lang=regexは、生の文字列リテラルが正規表現を表す値を示します。
パラメーターが System.Diagnostics.CodeAnalysis.StringSyntaxAttribute を使用して形式を示す引数として生の文字列リテラルを使用する場合、これらのツールは、一部の形式の型に対して生文字列リテラルを検証します。 JSON と正規表現の両方がサポートされています。
一部の形式では、コメントまたは属性を使用すると、コードの提案によって、形式に基づいて文字列リテラルの修正が提供されます。
3 つ以上の連続する二重引用符文字を含む生の文字列リテラルを作成する必要がある場合があります。 生文字列リテラルは、少なくとも一連の 3 つの二重引用符文字で開始および終了できます。 文字列リテラルに 3 つの連続する二重引用符が含まれる場合、4 つの二重引用符文字で生文字列リテラルを開始および終了します。
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.
"""";
生文字列リテラルを補間された文字列と組み合わせて、出力文字列に { および } 文字を埋め込むこともできます。 補間された生文字列リテラルで複数の $ 文字を使用して、エスケープせずに出力文字列に { および } 文字を埋め込みます。
生の文字列リテラルの内容に、長さが生の文字列リテラル区切り文字の長さ以上の一連の連続する " 文字が含まれてはなりません。 たとえば、文字列 """" """ """" と """"""" """""" """"" """" """ """"""" は適切な形式です。 一方、文字列 """ """ """ と """ """" """ は不適切な形式です
関連項目
.NET