569

C#の逐語的な文字列リテラル(@ "foo")では、バックスラッシュはエスケープとして扱われないため、二重引用符を取得するために\ "を実行しても機能しません。逐語的な文字列リテラルで二重引用符を取得する方法はありますか? ?

これは当然機能しません:

string foo = @"this \"word\" is escaped";
4

6 に答える 6

909

重複した二重引用符を使用してください。

@"this ""word"" is escaped";

出力:

this "word" is escaped
于 2009-12-18T15:37:27.823 に答える
118

二重引用符を使用します。

string foo = @"this ""word"" is escaped";
于 2009-12-18T15:37:37.573 に答える
96

さらに情報を追加するために、@この例は記号なしで機能します(\でエスケープするのを防ぎます)。

string foo = "this \"word\" is escaped!";

どちらの方法でも機能しますが、たとえばファイル名(文字列に\がたくさん含まれている)を使用すると、作業が簡単になるため、二重引用符のスタイルを使用することをお勧めします。

于 2009-12-18T15:51:39.697 に答える
87

これはあなたが持っているかもしれない質問を解決するのに役立つはずです:C#リテラル

リンクされたコンテンツの表は次のとおりです。

通常の文字 逐語的リテラル 結果の文字列
"Hello" @"Hello" Hello
"Backslash: \\" @"Backslash: \" Backslash: \
"Quote: \"" @"Quote: """ Quote: "
"CRLF:\r\nPost CRLF" @"CRLF:
Post CRLF"
CRLF:
Post CRLF
于 2009-12-18T15:42:30.547 に答える