VS2008非法读取字符串文本

时间:2011-12-19 09:45:28

标签: c# asp.net

我声明了一串特殊字符。

var SpecialCharSequence = "',!,#,$,%,&,',(,),*,+,-,.,\,/,:,;,<,=,>,?,@,[,],^,_,{,|,},~,";

为什么它为反向斜杠提供错误

Unrecognized escape sequence    

当它已经在引号中。

5 个答案:

答案 0 :(得分:4)

这是因为你的字符串包含\,这是一个转义字符。

\替换为\\

var SpecialCharSequence = "',!,#,$,%,&,',(,),*,+,-,.,\\,/,:,;,<,=,>,?,@,[,],^,_,{,|,},~,";

答案 1 :(得分:2)

声明如下:(使用verbatim literal @)

var SpecialCharSequence = @"',!,#,$,%,&,',(,),*,+,-,.,\,/,:,;,<,=,>,?,@,[,],^,_,{,|,},~,";

答案 2 :(得分:0)

是,

\会导致您的字符串中出现转义序列。 将其转换为\\即可。 \是一个特殊符号,代表文字\,您需要两倍。

答案 3 :(得分:0)

\是转义字符。如果您想将string\一起使用,请在@的开头添加string,使其成为literal string。否则,您需要使用第二个\转义单\\

var SpecialCharSequence = @"',!,#,$,%,&,',(,),*,+,-,.,\,/,:,;,<,=,>,?,@,[,],^,_,{,|,},~,";

答案 4 :(得分:0)

因为向后斜杠意味着它将与下一个字符组合一起进行字符转义。

喜欢\ t表示标签,\ r表示返回。

您可以使用\来表示反斜杠,或者您可以使用逐字字符串(通过在字符串前添加@),如下所示:

var SpecialCharSequence = @"',!,#,$,%,&,',(,),*,+,-,.,\,/,:,;,<,=,>,?,@,[,],^,_,{,|,},~,";

在逐字字符串中,您告诉编译器您没有在此字符串中使用字符转义...