以下代码为每个反斜杠生成有关“无法识别的转义序列”的编译器错误:
string foo = "D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
我想我需要逃避反斜杠?我该怎么做?
答案 0 :(得分:195)
每次都可以使用双反斜杠
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
或使用@符号
string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
答案 1 :(得分:24)
试试这个:
string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
问题是在字符串中,\
是转义字符。通过使用@
符号,您可以告诉编译器忽略转义字符。
您还可以逃避\
:
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
答案 2 :(得分:11)
var foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
答案 3 :(得分:8)
如果您的字符串是文件路径,如您的示例所示,您还可以使用Unix样式文件路径:
string foo = "D:/Projects/Some/Kind/Of/Pathproblem/wuhoo.xml";
但其他答案对C#中的字符串转义有更通用的解决方案。
答案 4 :(得分:5)
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
这将起作用,或者前面的例子也会起作用。 @“...”表示从字面上处理引号之间的所有内容,因此您可以
@"Hello
world"
包含文字换行符。我更老了,更喜欢用“\\”
逃避“\”