0

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

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

编译器是否验证字符串文字是否有效escape characters,如果是这样,那是唯一的目的!

4

2 回答 2

3

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

是的,显然确实如此,这就是您收到错误消息的原因。

如果是这样,那是唯一的目的!

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

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

于 2012-10-23T08:48:28.373 回答
2

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

编译器错误 CS1009 - MSDN

(\)意外字符跟在字符串中的反斜杠之后。编译器需要一个有效的转义字符。有关详细信息,请参阅字符转义

于 2012-10-23T08:52:07.247 回答