C# 11 新特性:原始字符串

之前

我们经常需要使用 string 类型定义字符串文本,字符串文本用一对双引号括起来表示:

var str = "Hello MyIO";

字符串可包含任何字符文本,但是有些字符需要转义才能表示,比如双引号要转义成\"

var str = "{\"K\":\"V\"}";

如果需要将文本多行显示,则需要插入回车换行,并且回车换行符要转义成\r\n

var str = "{\r\n \"K\":\"V\" \r\n}";

为了让代码更有可读性,可以用原义标识符@定义字符串,这时大部分字符不需要转义,但是双引号要转义成""

var str = @"{""K"":""V""
}";

由于输出时会包含定义中的所有空格,所以在代码中不能将{}对齐

如果需要将字符串中的值用变量或表达式代替,可以用$将字符串文本标识为内插字符串:

var x = 1;
var y = 2;
var str = @$"
{{""K"":""{x+y}""
}}";

由于{}是内插表达式的一部分,所以表示为字符的{}需要转义成使用两个大括号{{}}

C# 11

原始字符串文本从 C# 11 开始可用。原始字符串文本可以包含任意文本,而无需转义。

原始字符串文本用至少三个双引号括起来:

var str = """{"K":"V"}""";

当起始双引号和结束双引号位于单独的行上时,开头双引号后面的换行符和结束双引号前面的换行符不包括在最终内容中。可以缩进原始字符串文本以匹配整体代码格式:

var str = """{"K":"V"}""";

结束双引号指定字符串文本最左侧的列,前面的空格都会被忽略

当插入表达式时,需要用$$将字符串文本标识为内插字符串:

var x = 1;
var y = 2;
var str = $$"""{"K":"{{x + y}}"}""";

{{}}作为内插表达式的一部分,表示为字符的{}无需转义

将定义原始字符串文本的代码反编译,可以看到,字符串其实还是使用的一对双引号括起来表示。原始字符串只是 C# 11  为我们提供的一个语法糖

e284c5f43e6bcece8a0f17ad942509b6.png

添加微信号【MyIO666】,邀你加入技术交流群

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/286417.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

bzoj1011

因为允许5%的误差。。所以把&#xff1e;一定长度的一段看成一段近似计算就行了。。 1 #include<cstdio>2 #include<cstdlib>3 #include<cstring>4 #include<ctime>5 #include<cmath>6 #include<iostream>7 #include<algorithm>8 #i…

一名全栈工程师的必备“百宝箱”

摘要&#xff1a;全栈工程师&#xff0c;也叫全端工程师&#xff0c;是指掌握多种技能&#xff0c;并能利用多种技能独立完成产品的人。全栈工程师熟悉多种开发语言&#xff0c;同时具备前端和后台开发能力&#xff0c;从需求分析&#xff0c;原型设计到产品开发&#xff0c;测…

为VMware虚拟主机添加新磁盘

轨迹: 关闭VMware虚拟主机 ---> 虚拟机 ---> 设置 ---> 硬件 ---> 硬盘 ---> 添加 ---> (弹出添加硬件向导)硬盘 ---> 磁盘类型 ---> 选择磁盘 ---> 指定磁盘容量(最好选择“将虚拟磁盘存储为单个文件”) ---> 指定磁盘文件 ---> 点击“完成…

【ArcGIS风暴】全站仪、RTK测量坐标数据在CASS和ArcGIS中展点的区别和联系(带数据)

ArcGIS展经纬度点完整教程:【ArcGIS风暴】ArcGIS 10.2导入Excel数据X、Y坐标(经纬度、平面坐标),生成Shapefile点数据图层 目录 1. CASS展点操作步骤2. ArcGIS展点操作步骤3. 案例数据下载RTK或全站仪地面实测的三维坐标数据文件一般包括点号,编码,东坐标,北坐标,高程等…

php一篇文零基础到制作在线图片编辑网站赚钱(gif压缩、九宫格裁剪、等比裁剪、大小变换)【php华为云实战】

注意本篇文适用于&#xff1a; 零基础小白想要了解一下php开发或者网站开发的同学&#xff08;但是注意&#xff0c;零基础你可以通过本篇完成&#xff0c;但是由于是速成会有一些难度&#xff0c;本篇内容由于是速成&#xff0c;有一些额外知识点&#xff0c;不会可以来问我1…

MAUI 自定义绘图入门

在2022的5月份&#xff0c;某软正式发布了 MAUI 跨平台 UI 框架。我本来想着趁六一儿童节放假来写几篇关于 MAUI 入门的博客&#xff0c;可惜发现我不擅长写很入门的博客。再加上 MAUI 似乎是为了赶发布日期而发布&#xff0c;只能勉强说能开发了&#xff0c;能用了。于是我就来…

【三维激光扫描】实验02:StonexSiScan新建项目、加载点云数据

文章目录 1. 新建工程2. 打开工程3. 加载点云1. 新建工程 打开StonexSiScan点云后处理软件,点击【新建】按钮。 选择工程存放路径,输入工程名称。 2. 打开工程 点击【打开】按钮。

eBPF 在云原生环境中的应用

端午假期&#xff0c;我翻译了 OReilly 的报告《什么是 eBPF》&#xff0c;其中我觉得第五章「云原生环境中的 eBPF」解答了我心中的很多疑惑&#xff0c;比较不错&#xff0c;分享给大家。下面是第五章译文。《什么是 eBPF》中文版封面近年来&#xff0c;云原生应用已呈指数级…

使用HtmlAgilityPack抓取网页数据

XPath路径表达式&#xff0c;主要是对XML文档中的节点进行搜索&#xff0c;通过XPath表达式可以对XML文档中的节点位置进行快速定位和访问&#xff0c;html也是也是一种类似于xml的标记语言&#xff0c;但是语法没有那么严谨&#xff0c;在codeplex里有一个开源项目HtmlAgility…

企业有了程序员为什么还要用 低代码/无代码

一、备受“争议”的无代码/低代码开发 在看这篇内容时&#xff0c;我们要知道&#xff0c;技术无时无刻不在进行发展&#xff0c;IT技术更是如此&#xff0c;快速的技术更新使得程序员在进行应用开发时效率更高&#xff1b;我记得在十多年前&#xff0c;开发一个普通的 HTML 页…

【三维激光扫描技术】原理、方法及实验图文教程目录

《三维激光扫描技术》专栏讲述目前最先进、最流行的三维激光技术&#xff0c;包括三维激光扫描技术原理&#xff0c;三维测距原理&#xff0c;国内外三维扫描设备&#xff0c;点云特点&#xff0c;三维建模&#xff0c;三维激光优势、应用领域&#xff0c;应用技术案例等。 文章…

求最长回文串

Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring. 转载于:https://www.cnblogs.com/yangscode/p/5017527.html

实训三(cocos2dx 3.x 打包apk)

上一篇文章《实训二&#xff08;cocos2dx 2.x 打包apk&#xff09;》简单的讲述的利用cocos2dx 2.x引擎在windows平台上打包apk的方法与过程&#xff0c;本文将介绍3.x版本引擎&#xff0c;如何打包apk的问题。 首先&#xff0c;Cygwin在3.x版本引擎上已经用不到了&#xff0c;…

网页精美动效/动画制作 按钮鼠标悬浮动效基础 01《炫彩网页 iVX 无代码动效/动画制作》

编辑器地址&#xff1a;https://editor.ivx.cn/ 一、准备工作 进入编辑页后&#xff0c;选择其中一种应用类型创建应用&#xff0c;在此以相对应用作为示例&#xff1a; 创建好应用后在此选择对应的屏幕作为示例演示&#xff0c;在此选择电脑屏幕作为对应的大小&#xff1a…

Java并发编程 - Executor,Executors,ExecutorService, CompletionServie,Future,Callable

一、Exectuor框架简介 Java从1.5版本开始&#xff0c;为简化多线程并发编程&#xff0c;引入全新的并发编程包:java.util.concurrent及其并发编程框架&#xff08;Executor框架&#xff09;。 Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类&a…

网页精美动效/动画制作 按钮鼠标悬浮动效的注意点 02《炫彩网页 iVX 无代码动效/动画制作》

一、按钮动效的使用 在上一节中&#xff0c;我们创建了一个动效&#xff0c;但是并没有使用&#xff0c;在此我们给按钮设置一个悬浮事件&#xff0c;当鼠标悬浮在按钮之上后就调用该动效&#xff0c;点击按钮添加事件&#xff1a; 点击按钮添加事件后将会出现一个事件编辑框…

WPF 实现带明细的环形图表

本文经原作者授权以原创方式二次分享&#xff0c;欢迎转载、分享。原文作者&#xff1a;普通的地球人原文地址&#xff1a;https://www.cnblogs.com/tsliwei/p/7155616.htmlGithub地址&#xff1a;https://github.com/WPFDevelopersOrg/WPFDevelopers.Charts大体思路图表使用Ar…

几行代码搞定树形文本转XML和JSON

由于需要将百度脑图的内容导出为xml或者json格式&#xff0c;发现百度脑图只能导出为树形文本&#xff0c;所以就写了个小应用给编辑用。/// <summary>/// 树形文本转xml/// </summary>/// <param name"txt"></param>/// <returns><…

《iVX 高仿美团APP制作移动端完整项目》01 标题需求分析思路及制作流程

点击整个专栏查看其它系列文章 &#xff08;系列文章更新中…&#xff09;&#xff1a;《iVX 高仿美团APP制作移动端完整项目》 项目界面预览&#xff1a; 一、创建项目 首先打开在线编辑器地址&#xff1a;https://editor.ivx.cn/ 随后登录帐号后创建一个相对应用项目&…

zepto源码研究 - ajax.js($.ajaxJSONP 的分析)

简要&#xff1a;jsonp是一种服务器和客户端信息传递方式&#xff0c;一般是利用script元素赋值src来发起请求。一般凡是带有src属性的元素发起的请求都是可以跨域的。 那么jsonp是如何获取服务器的数据的呢&#xff1f; jsonp先将指定的一个函数名作为url后面的参数传递到服务…