Tar*_*rec 3 c# char special-characters
快速的问题.为什么这两行都有效?
char x = '\"';
char y = '"';
Run Code Online (Sandbox Code Playgroud)
如果"是一个特殊字符,第二行不应该被标记为不正确吗?
Jon*_*eet 14
如果"是一个特殊字符,第二行不应该被标记为不正确吗?
不,因为语言规则不需要"在字符文字中进行转义,只能在字符串文字中进行转义.
然而,允许它以任何一种方式进行转义是一致的.这样就有一组转义序列适用于字符和字符串文字,但是\U........对于任何代码点都不会失败,而这些代码点不是由单个UTF-16代码单元表示的.
不同之处在于C#规范(字符串文字)的2.4.4.5节,其中单正则字符串 - 字面字符制作是:
除"(U + 0022),\(U + 005C)和换行符之外的任何字符
与单字符制作的第2.4.4.4节(字符文字)相比较:
除'(U + 0027),\(U + 005C)和换行符之外的任何字符
如您所见,与您的情况相反的情况适用于':
string x = "'";
string y = "\'";
Console.WriteLine(x == y); // Strings are equivalent
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
193 次 |
| 最近记录: |