C# 包含反斜杠的路径字符串的无法识别的转义序列
以下代码为每个反斜杠生成关于“无法识别的转义序列”的编译器错误:C# 包含反斜杠的路径字符串的无法识别的转义序列,c#,.net,string,path,escaping,C#,.net,String,Path,Escaping,以下代码为每个反斜杠生成关于“无法识别的转义序列”的编译器错误: string foo = "D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml"; 我想我需要避开反斜杠?我该怎么做?试试这个: var foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml"; string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml"; str
string foo = "D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
我想我需要避开反斜杠?我该怎么做?试试这个:
var 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 foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
或者使用@符号
这会起作用,或者前面的例子也会起作用@“…”的意思是按字面意思处理引号之间的所有内容,这样您就可以
@"Hello
world"
包含文字换行符。我比较老派,更喜欢用“\\”来转义“\”如果字符串是文件路径,如示例中所示,也可以使用Unix样式的文件路径:
string foo = "D:/Projects/Some/Kind/Of/Pathproblem/wuhoo.xml";
但是其他答案有C#中字符串转义的更一般的解决方案。在一个小音符上,一个“然后像”FWIW一样转义,@“的术语是一个“逐字字符串文字”。虽然我也听说它被称为“字符串文字”,技术上包括just.的“常规字符串文字”。但是double这也有助于解决我遇到的Html.TextBoxFor问题。使用@before正则表达式解析无法识别的转义序列,其中双反斜杠失败。
string foo = "D:/Projects/Some/Kind/Of/Pathproblem/wuhoo.xml";