Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 包含反斜杠的路径字符串的无法识别的转义序列_C#_.net_String_Path_Escaping - Fatal编程技术网

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";