发布于2026-07-28 阅读(0)
扫一扫,手机访问
在C#中处理字符串变量时,经常会遇到转义序列的问题。反斜杠\是转义符号,比如\t表示制表符,\r\n表示换行。但有些场景下,我们希望字符串原样输出,而不是被解析成控制字符。举个例子,假设要存储一个文件路径:

string path = "C:notebooktel"; Console.WriteLine(path);
运行结果却是:
C: otebook el.txt
显然,这不是我们想要的结果——这是一个完整的路径,理应原封不动地显示出来。解决起来很简单:在C#中,使用逐字字符串时,只需在字符串前面加上@符号即可。
string path = @"C:notebooktel.txt"; Console.WriteLine(path);
重新运行,结果就正常了:
C:notebooktel.txt
C# 11引入了一个更强大的特性——原始字符串字面值。它允许你直接输入任何文本,完全不需要考虑转义问题。语法规则是:用三个或更多双引号作为开头和结尾。
string path = """
C:notebooktel.txt
""";
Console.WriteLine(path);
运行结果:
C:notebooktel.txt
这个特性还有一个很贴心的设计:编译器会检查最后三个(或更多)引号的缩进级别,然后自动删除所有内容中与该缩进匹配的部分。也就是说,你可以把代码排版得整齐美观,而实际输出的字符串会保持正确的缩进。来看一个例子:
string xml = """"
小明
"""";
Console.WriteLine(xml);
运行结果:
小明
注意,如果最后三个引号与左边对齐,那么之前的空格就不会被移除:
string xml = """"
小明
"""";
小明
原始字符串字面值还能和字符串内插结合在一起使用,这在实际开发中非常实用。修改前面的代码:
var person = new { age = 12, name = "小明" };
string xml = $$""""
{{person.name}}
"""";
Console.WriteLine(xml);
通过在内插字面值开头添加对应数量的$符号,就可以将花括号{}内插表达式与原始字符串字面值混合使用。几个$就表示用几个花括号来包裹内插内容。举个例子:
int age=10;
string name = "小明";
string json=$$"""
{
"name":{{name}},
"age":{{age}}
}
""";
Console.WriteLine(json);
变量json的运行结果:
{
"name":小明,
"age":10
}
这里使用了两个$,所以内插表达式需要用两个花括号{{ }}来包裹。如果改成三个$,那么编译器就会认为三个花括号才是内插标记,而两个花括号只是普通文本:
string json=$$$"""
{
"name":{{name}},
"age":{{age}}
}
""";
Console.WriteLine(json);
运行结果就变成了原样输出:
{
"name":{{name}},
"age":{{age}}
}
这种灵活性让C#在处理复杂字符串时变得游刃有余,无论是配置文件、JSON还是XML,都可以摆脱繁琐的转义困扰。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8