编译器是否对字符串文字中的有效转义字符进行验证

时间:2012-10-23 08:46:27

标签: c# string

普通字符串文字的编译器,有效escape sequence,如\n\t编译时没有任何错误。

但是当我使用invalid escape characters \s\w时,编译器显示错误。是的,我们可以通过使用verbatim string或使用{转义它来避免错误{1}}但我的问题是

编译器验证有效\\的字符串文字,如果是,那就是唯一的目的!

2 个答案:

答案 0 :(得分:3)

  

编译器是否验证有效转义字符的字符串文字

是的,很明显,这就是您收到错误消息的原因。

  

如果是的话,这只是目的!

我真的不明白这个问题。我假设你想知道为什么编译器不会简单地接受无效的转义序列并逐字处理它们。这确实是一种可能性,但它会使字符串文字的解释稍微不一致:\x根据x的实际值而言会有不同的含义。

至少,C#严格检查转义序列的有效性并没有缺点。并且它可以避免由于不同数量的连续反斜杠引起的拼写错误和混淆造成的错误。

答案 1 :(得分:2)

是编译器验证字符串,如果使用无效的转义字符,则会收到错误:

Compiler Error CS1009 - MSDN

  

字符串中的反斜杠(\)后面出现意外字符。该   编译器需要一个有效的转义字符。更多   信息,请参阅Character Escapes

相关问题