VS2008非法读取字符串文本

本文关键字:文本 字符串 读取 非法 VS2008 | 更新日期: 2023-09-27 18:18:10

我声明了一串特殊字符。

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

为什么反斜杠

会报错?
Unrecognized escape sequence    

当它已经在引号中。

VS2008非法读取字符串文本

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

''代替'

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

像这样声明:

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

是,

'会产生一个转义序列,也就是字符串中的转义序列。将其转换为'',它将工作。'是一个特殊的符号,要表示文字',需要两个符号。

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

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

因为反斜杠表示它将与下一个字符组合为字符转义。

就像't表示制表符一样,'r表示返回。

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

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

在逐字字符串中,你告诉编译器你没有在这个字符串中使用字符转义…