讲师中心 微信公众号
AI工具推荐 视频效率加速

C# 原始字符串字面量方法 C#如何使用三个引号创建免转义字符串

夜辰小哥_1260

夜辰小哥_1260

发布时间:2026-02-23 07:55:33

|

803人浏览过

|

来源于php中文网

原创

C# 11 的原始字符串字面量(""")完全不处理转义,支持自然换行和直接嵌入双引号,结尾"""独占一行并自动剪裁其前导缩进;而@""仅跳过转义但需""表示引号、不支持多行且无缩进处理。

c# 原始字符串字面量方法 c#如何使用三个引号创建免转义字符串

什么是 C# 的原始字符串字面量(""")

从 C# 11 开始,"""(三个双引号)定义的字符串是真正的原始字符串字面量:它不处理任何转义序列,换行、反斜杠、引号都按字面意义保留。这和旧式 @"" 字符串不同——@"" 只跳过转义,但依然要求双引号成对出现且需写成 "" 表示一个引号;而 """ 允许直接嵌入未转义的双引号,也支持自然换行。

""" 的基本写法与缩进处理

原始字符串以 """ 开头,也以 """ 结尾,中间内容完全照搬。但要注意:结尾的 """ 必须独占一行,且其前导空白(空格或制表符)会从整段字符串中“自动剪裁”——剪裁依据是结尾引号所在行的最小缩进量。

常见错误现象:""" 后换行后直接缩进写内容,但结尾 """ 没对齐,导致编译报错 Unexpected character '"""' 或实际字符串开头多出大量空格。

实操建议:

  • 把开头 """ 放在行首,内容每行左对齐,结尾 """ 也放行首——最安全,无剪裁歧义
  • 若必须缩进(如在 if 块内),确保所有内容行和结尾 """ 行使用相同缩进(比如都用 4 个空格),编译器会以结尾行为基准剔除该缩进
  • 结尾 """ 行不能有其他字符(包括注释),否则无法识别为终止符

示例:

C#
C#

"避开 C# 常见错误——空陷阱、异步陷阱、LINQ 陷阱及资源泄漏。"

下载
string json = """{
    "name": "Alice",
    "age": 30
}""";

上面的 { 和 "name" 前的 4 个空格会被保留;但如果结尾 """ 前也有 4 个空格,则这 4 个空格会从每一行开头被统一移除。

和 @"" 字符串的关键区别在哪里

两者都避免转义,但行为差异直接影响可读性和维护成本:

  • @"" 中双引号必须写成 "",JSON 或 HTML 片段里引号密集时极易出错;""" 内直接写 " 即可
  • @"" 不支持跨行(除非手动拼接或加 \),""" 天然支持多行且语义清晰
  • @"" 对缩进零处理——你写几格空格就真有几个空格;""" 自动剪裁,更贴近“视觉对齐即语义对齐”的直觉
  • @"" 在 C# 2.0 就存在,""" 要求 C# 11+ 且目标框架至少为 .NET 6(含)

典型误用场景:有人试图在 @"" 里写多行 JSON 并靠空格对齐,结果字符串里混入大量不可见空格,解析失败却难以定位。

实际用例中容易忽略的细节

原始字符串不是万能胶,几个关键点常被跳过:

  • 不能嵌套 """:想表示连续三个双引号?只能靠拼接,例如 """"""(六个引号)会被解释为字符串 """
  • 插值仍需 $""" 形式,且插值表达式里不能含换行(插值部分本身仍是普通表达式)
  • 正则表达式里用 """ 很方便,但别忘了 RegexOptions.Multiline 等选项仍需显式传入,原始字符串只管字面内容
  • IDE(如 VS 2022 17.3+)对 """ 有语法高亮和缩进智能匹配,但旧版可能显示异常——确认编辑器支持再大规模采用

最常被漏掉的一点:项目文件里没显式指定 LangVersion,会导致 """ 编译失败却不提示具体原因,错误信息只是模糊的“无法解析”。务必检查 .csproj 是否含 <langversion>11</langversion> 或更高。

热门AI工具

更多
码上飞
码上飞 Hot

一款基于自然语言的AI应用开发平台,可根据用户描述自动生成应用程序,帮助个人和团队快速完成应用原型与开发。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

Flowith
Flowith Hot

Flowith是一款基于画布和智能体工作流的 AI 协作工作空间。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2275

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

3722

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

1236

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

4299

2025.09.10

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

4856

2023.06.20

正则表达式不包含
正则表达式不包含

正则表达式,又称规则表达式,,是一种文本模式,包括普通字符和特殊字符,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式的文本。php中文网给大家带来了有关正则表达式的相关教程以及文章,希望对大家能有所帮助。

3321

2023.07.05

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

9282

2023.07.05

java正则表达式匹配字符串
java正则表达式匹配字符串

在Java中,我们可以使用正则表达式来匹配字符串。本专题为大家带来java正则表达式匹配字符串的相关内容,帮助大家解决问题。

812

2023.08.11

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

0

2026.11.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
C++ Core Guidelines
C++ Core Guidelines

共0课时 | 0人学习

C++ Reference
C++ Reference

共0课时 | 0人学习

C++ 官方标准说明
C++ 官方标准说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn