包含反斜杠的pathstring无法识别的转义序列
以下代码为每个反斜杠生成一个有关“无法识别的转义序列”的编译器错误:
string foo = "D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
我想我需要逃避反斜杠? 我怎么做?
您可以每次使用双反斜杠
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
或使用@符号
string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
尝试这个:
string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
问题是在string中, \
是一个转义字符。 通过使用@
符号,您可以告诉编译器忽略转义字符。
你也可以逃脱\
:
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
var foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
如果你的string是一个文件path,如你的例子,你也可以使用Unix风格的文件path:
string foo = "D:/Projects/Some/Kind/Of/Pathproblem/wuhoo.xml";
但是其他答案有更通用的C#中string转义的解决scheme。
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
这将起作用,或者前面的例子也会起作用。 @“…”意思是字面上对待引号之间的所有内容,所以你可以这样做
@"Hello world"
包含一个文字换行符。 我更老,更喜欢用“\\”来逃避“\”