C#中如何编写代码避免斜杠被识别为转义序列引发编译错误?
报错原因
C#常规字符串字面量中,反斜杠\是转义标识符,编译器会默认将反斜杠和其后紧跟的字符组合解析为转义序列。原代码中\|不属于C#预定义的合法转义序列,因此触发编译错误:
Compilation error (line 22, col 48): Unrecognized escape sequence
原出错代码:
Console.WriteLine("|/ \|");
修复方案
任选以下一种写法即可解决问题:
- 转义反斜杠本身
常规字符串中要输出单个反斜杠,需要写两个连续反斜杠\\表示对反斜杠自身的转义,修改后代码:Console.WriteLine("|/ \\|"); - 使用逐字字符串
在字符串前添加@前缀声明逐字字符串,该模式下编译器会关闭转义解析,字符串内所有字符按字面含义识别(仅双引号需要写为""做转义,本场景不涉及),修改后代码:
该写法不需要调整字符串内的反斜杠,可读性更强,更适合包含大量特殊符号、文件路径的场景。Console.WriteLine(@"|/ \|");
两种写法运行后都可以正确输出目标内容:
|/ \|
内容的提问来源于stack exchange,提问作者willdevstill
相关产品推荐
相关产品推荐

