.Net 7内容汇总(2)--原始字符串
在C# 11里,添加了一个叫原始字符串的东西。
这个东西算是我相当喜欢以及期待的功能。
我们先来看看这玩意咋用。
首先,我们先来看看之前如果我们需要定义一个带引号的字符串我们需要怎么做。
var a = "\"test\"";
Console.WriteLine(a);
我们需要把每个引号都加上转义符,变成\"对吧?
这种操作如果仅仅只有几个引号,那还好说,我们手动加一下就行了。
如果我们要引用一个xml、json之类的文本呢?里面可能充斥着大量的引号,我们可能就不得不借助工具先进行转换,然后再放到代码里,并且拿出来的时候还要使用工具转换回去。
现在这个原始字符串功能就可以让我们省去转换这一步,直接把字符串内容作为原始字符串放到内容里。
var test = """
"test"
""test""
""";
Console.WriteLine(test);
这里使用至少三个引号"""来作为原始字符串的开始与结束。
然后我们就可以在里面随便写引号而不用进行任何转义了。
有人又要问了,那我的字符串里有三个引号怎么办呢?是不是还要转义?
既然我这么问了,那么答案肯定是否定的,大家要注意我用了至少三个引号的说法,这里的至少就很有灵性。
我们可以使用四个引号、五个引号来包裹这个原始字符串,只要前后的引号数量相同即可。
var test = """"
"test"
""test""
"""test"""
"""";
Console.WriteLine(test);
同时原始字符串也支持$来支持嵌套代码。
我们同样可以用
var test = $""""
"test"
""test""
"""test"""
{a}
"""";
Console.WriteLine(test);
来使用花括号插入代码段。
同时,花括号这种东西有时候也会给我们带来烦恼,比如我们要解释一段vue代码?里面会有{{}}这种东西?同时我们又想插入代码段?
现在我们可以在原始字符串前面加任意个$,代表我们使用几个花括号来表示要插入的代码块。
var test = $$$""""
"test"
""test""
"""test"""
{{}}
{{{a}}}
"""";
Console.WriteLine(test);
这样我们就可以原样输出{{和}},并且支持{{{a}}}来输出我们的代码段。
同时原始字符串还处理了一下排版的问题。
众所周知,如果我们用@来定义字符串,那么我们换行以后就只能紧贴着最左边来写内容,如果我们想做一下对齐,那么对不起,你产生的字符串不会对齐,你加了多少个空格来对齐,输出的字符串就会给你加多少个空格。
现在原始字符串可以根据你定义的位置来去掉多余的空格。
var test =
$$$""""
"test"
""test""
"""test"""
{{}}
{{{a}}}
"""";
Console.WriteLine(test);
我们直接将原始字符串的开头空一定数量的空格,那么后续所有的对齐都是按照这个空行来进行对齐。
比如我们的例子输出是这样的
"test"
""test""
"""test"""
{{}}
"test"
.Net 7内容汇总(2)--原始字符串的更多相关文章
- 【转载】C#检测客户端输入的内容是否含有危险字符串
用户在客户端提交的内容有时候并不可信,如果客户端提交的内容中含有危险字符串信息,则很有可能造成应用程序安全性问题,如SQL注入风险等.因此在接收客户端提交过来的数据后,我们首先需要判断数据中是否含有危 ...
- scala学习手记6 - 字符串与多行原始字符串
scala中的字符串类就是java中的java.lang.String类.不过scala也为String提供了一个富封装类:scala.runtime.RichString. scala可以将java ...
- 13.Python字符串详解(包含长字符串和原始字符串)
简单地理解,字符串就是“一串字符”,也就是用引号包裹的任何数据,比如“Hello,Charlie”是一个字符串,“12345”也是一个字符串. Python 要求,字符串必须使用引号括起来,可以使用单 ...
- JAVA----编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符
package com.pb.demo.packclass.demo1; import java.util.HashSet; /** * 编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符 ...
- devi into python 笔记(六)正则表达式 原始字符串
字符串函数replace: #string.replace: #字符串的replace方法:替换子串,不改变原来的字符串 s = "broad road" #打印出来会发现不单单是 ...
- SQL写操作 设置内容 (数组转字符串)
SQL写操作 设置内容 (数组转字符串) SQL set内容 SQL操作数组转字符串 SQL写操作 set内容 (数组转字符串) [ 封装方法 ] function getSqlSet( $data ...
- python原始字符串
str1='let's go' File "<input>", line 1 str1='let's go' ^ SyntaxError: invalid syntax ...
- Android开发环境内容汇总
Android开发环境将分为SDK相关内容.Eclipse ADT相关内容.模拟器AVD相关内容.调试器DDMS相关内容.日志LogCat相关内容.连接驱动ADB相关内容.内存泄露检测工具MAT相关 ...
- Android开发环境——模拟器AVD相关内容汇总
Android开发环境将分为SDK相关内容.Eclipse ADT相关内容.模拟器AVD相关内容.调试器DDMS相关内容.日志LogCat相关内容.连接驱动ADB相关内容.内存泄露检测工具MAT相关 ...
随机推荐
- Codeforces Round #792 (Div. 1 + Div. 2) A-E
Codeforces Round #792 (Div. 1 + Div. 2) A-E A 题目 https://codeforces.com/contest/1684/problem/A 题解 思路 ...
- Spring和SpringMVC整合及关系
SpringMVC扼要的讲,就是控制请求和处理.有必要将Spring和SpringMVC整合,否则仅配置SpringMVC并完成Spring的功能,会造成业务逻辑混乱. 简要总结:①原理:采用监听器, ...
- Fleet 使用感受
1. 前言 笔者主要使用的编程语言是 Java.平时使用的 IDE 是 JetBrains 公司的 IntelliJ IDEA.有时候也会打开该公司旗下的 PyCharm.DataGrip.WebSt ...
- .net 温故知新:【6】Linq是什么
1.什么是Linq 关于什么是Linq 我们先看看这段代码. List<int> list = new List<int> { 1, 1, 2, 2, 3, 3, 3, 5, ...
- 【每天学一点-02】创建Node.js的第一个应用
1.引入require模块,使用createServer()创建服务器 [server.js]文件 var http = require('http'); http.createServer(func ...
- break和continue语句的使用
break break关键字的用法有常见的两种: 1.可以用在switch语句当中,一旦执行整个switch语句like结束. 2.还可以用在循环语句当中,一旦执行,整个循环语句立刻结束,打断循环 关 ...
- 20220722-Java可变参数
Java可变参数总结 来源:B站韩顺平老师的Java入门教学 代码示例如下: public void f(String str,int... nums){ 方法体; } 代码示例如下: public ...
- javascript相邻节点元素获取
<script> window.onload = function () { var myLinkItem = document.getElementById('linkItem'); v ...
- 使用Python3.7结合Redisearch代替ElasticSearch实现的全文检索功能服务
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_105 "检索"是很多产品中无法绕开的一个功能模块,当数据量小的时候可以使用模糊查询等操作凑合一下,但是当面临海 ...
- Java学习 (四)基础篇 Java基础语法
注释&标识符&关键字 注释 注释并不会被执行,其主要目的用于解释当前代码 书写注释是一个非常好的习惯,大厂要求之一 public class hello { public static ...