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

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










