<p>C# 11 引入原始字符串字面量,使用三个双引号 “”” 包围字符串,保留换行、引号和空格,无需转义;支持通过结束引号位置自动修剪前导空格,并结合 $ 实现内插,提升多行文本如 jsON、sql 的可读性与维护性。</p>

在 C# 中,原始字符串字面量(Raw String Literals)从 C# 11 开始引入,极大简化了多行文本和包含引号、转义字符的字符串处理。它让你不再需要反斜杠 换行或 转义双引号,写起来更直观。
使用三个或更多双引号定义原始字符串
用至少三个双引号 “”” 开始和结束字符串,中间内容原样保留:
- 换行会直接变成字符串中的换行符
- 引号无需转义
- 缩进和空格也按实际输入保留
例如:
string json = “””
{
“name”: “Alice”,
“age”: 30
}
“””;
控制缩进和格式化
原始字符串默认保留所有空白,但你可以通过将结束引号放在合适位置来调整缩进。C# 会自动去除每行前面与结束引号对齐的空格。
比如这样写能让代码更整洁:
string message = “””
Hello,
this is a multi-line message.
Thanks!
“””;
输出时每行前面的四个空格会被自动修剪,只要它们不超过结束引号的位置。
嵌入变量和表达式(支持内插)
在原始字符串中使用 $ 符号即可进行字符串内插,变量用 {} 包裹:
string name = “Bob”;
string greeting = $”””
Hello {name},
Welcome to the system.
“””;
注意:左花括号 { 如果紧挨着三个引号,可能需要额外空格避免解析错误。


