C#の逐語的な文字列リテラル(@ "foo")では、バックスラッシュはエスケープとして扱われないため、二重引用符を取得するために\ "を実行しても機能しません。逐語的な文字列リテラルで二重引用符を取得する方法はありますか? ?
これは当然機能しません:
string foo = @"this \"word\" is escaped";
C#の逐語的な文字列リテラル(@ "foo")では、バックスラッシュはエスケープとして扱われないため、二重引用符を取得するために\ "を実行しても機能しません。逐語的な文字列リテラルで二重引用符を取得する方法はありますか? ?
これは当然機能しません:
string foo = @"this \"word\" is escaped";
重複した二重引用符を使用してください。
@"this ""word"" is escaped";
出力:
this "word" is escaped
二重引用符を使用します。
string foo = @"this ""word"" is escaped";
さらに情報を追加するために、@
この例は記号なしで機能します(\でエスケープするのを防ぎます)。
string foo = "this \"word\" is escaped!";
どちらの方法でも機能しますが、たとえばファイル名(文字列に\がたくさん含まれている)を使用すると、作業が簡単になるため、二重引用符のスタイルを使用することをお勧めします。
これはあなたが持っているかもしれない質問を解決するのに役立つはずです:C#リテラル
リンクされたコンテンツの表は次のとおりです。
通常の文字 逐語的リテラル 結果の文字列 "Hello"
@"Hello"
Hello
"Backslash: \\"
@"Backslash: \"
Backslash: \
"Quote: \""
@"Quote: """
Quote: "
"CRLF:\r\nPost CRLF"
@"CRLF:
Post CRLF"CRLF:
Post CRLF