次のコードは、各円記号の「認識されないエスケープシーケンス」に関するコンパイラエラーを生成します。
string foo = "D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
バックスラッシュをエスケープする必要があると思いますか?それ、どうやったら出来るの?
回答:
これを試して:
string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
問題は、文字列で\
は、aがエスケープ文字であるということです。@
記号を使用することにより、エスケープ文字を無視するようコンパイラーに指示します。
\
:をエスケープして解決することもできます。
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
var foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
例のように、文字列がファイルパスの場合は、Unixスタイルのファイルパスを使用することもできます。
string foo = "D:/Projects/Some/Kind/Of/Pathproblem/wuhoo.xml";
しかし、他の答えには、C#での文字列エスケープに対するより一般的な解決策があります。
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
これは機能するか、前の例でも機能します。@ "..."は、引用符の間のすべてを文字通り処理することを意味するため、次のことができます。
@"Hello
world"
文字通りの改行を含めること。私はもっと古い学校で、「\\」で「\」をエスケープすることを好みます