1. ホーム
  2. c#

[解決済み] 文字列の中にバックスラッシュ(Ⓐ)を書くには?

2023-06-20 07:09:55

質問

次のようなことを書きたい。 C:\Users\UserName\Documents\Tasks の中に textbox :

txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\Tasks";

エラーが出ます。

認識できないエスケープシーケンスです。

文字列にバックスラッシュを書き込むには?

どのように解決するのですか?

バックスラッシュ( "\" ) 文字は、改行などの他の特殊文字を示すために使われる特殊なエスケープ文字です ( \n )、タブ( \t )、または引用符 ( \" ).

バックスラッシュ文字そのものを入れたい場合は、バックスラッシュを2つ入れるか、あるいは @ の逐語的文字列を使用します。

var s = "\\Tasks";
// or 
var s = @"\Tasks";

を読む MSDNドキュメント/C#仕様書 で、バックスラッシュ文字を使用してエスケープされる文字と、逐語的文字列リテラルの使用について説明されています。

一般に といえば、ほとんどの C# .NET 開発者は @ を使用することを好む傾向があります。なぜなら、常にバックスラッシュを 2 つ記述する必要がなくなり、パスを直接コピー/貼り付けることができるからです。


とは言うものの、この場合、実際に使用することをお勧めするのは Path.Combine のようなユーティリティ・メソッドを使用することをお勧めします。 lordkain さんの回答 を使用すると、バックスラッシュがすでにパスに含まれているかどうかを心配する必要がなく、パスの一部を組み合わせるときに誤ってスラッシュを2倍にしたり、完全に省略したりすることができます。