2011-12-19 73 views
2

我声明了一串特殊字符。VS2008非法读取字符串文本

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

为什么它给人一种错误的反斜杠

Unrecognized escape sequence  

当它已经在引号。

+1

尝试使用'SpecialCharSequence = @“' – V4Vendetta 2011-12-19 09:47:30

回答

4

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

替换\\\

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

是,

\导致一个转义序列,你在你的字符串有。 将其转换为\\,它将工作。 \是一个特殊符号,并代表文字\你需要它们的两倍。

+0

谢谢回答 – joshua 2011-12-19 11:27:59

2

声明是这样的:(与逐字直译@)

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

谢谢回答 – joshua 2011-12-19 11:28:36

0

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

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

+0

KnightThanks的答案 – joshua 2011-12-19 11:27:34

0

由于向后斜线表示这将是在与下一个字符组合的字符逃逸。

像\ t表示选项卡,\ r表示返回。

你既可以使用\来表示一个反斜杠,或者您可以使用原义字符串(通过添加字符串前的@),就像这样:

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

在逐字字符串,你告诉你不使用字符转义编译字符串中的...

+0

谢谢回答 – joshua 2011-12-19 10:04:17