web-dev-qa-db-ja.com

逐語的文字列リテラルで二重引用符をエスケープできますか?

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

これは明らかにうまくいきません。

string foo = @"this \"Word\" is escaped";
506
kdt

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

@"this ""Word"" is escaped";

出力:

this "Word" is escaped
835
Myles

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

string foo = @"this ""Word"" is escaped";
110
Brandon

より多くの情報を追加するために、あなたの例は@シンボルなしでうまくいくでしょう(それは\でのエスケープを防ぎます):

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

どちらの方法でも動作しますが、ファイル名(文字列に\がたくさん含まれている場合など)で作業しやすいように、二重引用符スタイルを使用します。

93
j.a.estevan

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

これは、リンクされたコンテンツの表です。

enter image description here

72
rfonn