0

0

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

幻夢星雲

幻夢星雲

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

|

723人浏览过

|

来源于php中文网

原创

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

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

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

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

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

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

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

实操建议:

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

示例:

ResearchFlow
ResearchFlow

专为学术研究和深度信息探索设计的AI学术研究工具

下载
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工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

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

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

445

2023.08.07

json是什么
json是什么

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

544

2023.08.23

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

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

322

2023.10.13

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

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

81

2025.09.10

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

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

524

2023.06.20

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

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

256

2023.07.05

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

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

758

2023.07.05

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

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

219

2023.08.11

pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

1030

2026.02.13

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
C# 教程
C# 教程

共94课时 | 10万人学习

C 教程
C 教程

共75课时 | 4.9万人学习

C++教程
C++教程

共115课时 | 19万人学习

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号