首页 > 编程语言 >C#11:原始字符串

C#11:原始字符串

时间:2022-12-04 15:46:59浏览次数:33  
标签:11 firstName C# lastName var 字符串

  这一直以来是我写代码的一个痛点,C#11终于解决了,那就是我想把一个整齐的格式的json字符串转出,但不能如愿,要不用一个三方库来搞定,要不就加各种双引号,如果有变量还得小心处理{},因为在C#string类型中 @,$,",{,}都是有含义的,组合使用后就各种转义,补齐,C#11终于解决了这个痛点,使用方式如下:

  环境要求:Visual Studio 17.2 Preview 3或.NET 7 Preview 3

  创建控制台项目,目标框架选成.NET7.0,然后修改项目文件.csproj,增加两个节点,这样就能使用到C#11的功能。

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net7.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <LangVersion>preview</LangVersion>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
    <LangVersion>preview</LangVersion>
  </PropertyGroup>
</Project>

  代码主要通过$$"""开始原始字符串格式,用"""来结束原始字符串格式,中间的内容,可以原封不动的放上去,如果有外部变量,用{{}}原占位替换,整个字符串看起来很顺眼,找问题也很容易了。这里注意的一点是,$$是字符串格式的开始占位,下面的行不能超出$$,否则编译器报错。

//原始字符串
var firstName = "桂";
var lastName = "素伟";
var json =
    $$"""
    {
         "firstName": "{{firstName}}",
         "lastName": "{{lastName}}",
         "sex": "male",
         "age": 15         
     }
    """;
Console.WriteLine(json);

var xml=
    $$"""
    <?xml version="1.0"?>
    <Person>
      <FirstName>{{firstName}}</FirstName>
      <LastName>{{lastName}}</LastName>
      <Sex>male</Sex>
      <Age>15</Age>
    </Person>
    """;
Console.WriteLine(xml);
  想要更快更方便的了解相关知识,可以关注微信公众号 

 

 

标签:11,firstName,C#,lastName,var,字符串
From: https://www.cnblogs.com/axzxs2001/p/16949977.html

相关文章

  • C#11:原始字符串
    这一直以来是我写代码的一个痛点,C#11终于解决了,那就是我想把一个整齐的格式的json字符串转出,但不能如愿,要不用一个三方库来搞定,要不就加各种双引号,如果有变量还得小心......
  • python分布式框架celery(二)
    一、什么是Celery1.1、celery是什么Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统,专注于实时处理的异步任务队列,同时也支持任务调度。Celery的架构由三......
  • 算法刷题532113D
    题目链接https://vjudge.net/contest/532113#problem/D思考虽然AC之后觉得题目难度不是很高,但也是第一次做比较综合的题目,花了快一天才做出来,只能说水平还是菜思路......
  • java——mybatis——Mybatis注解开发——@Select查询——查询所有数据
    pom.xml配置:<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins......
  • RHEL8关于创建Service服务的帮助手册
    Systemd手册主页Systemd服务关于搜索路径顺序和部分配置项手册Systemd服务配置语法如果想通过man查看手册的话,那么使用mansystemd.<unit|syntax|...>格式进行查看帮......
  • C++图书管理系统(管理员-读者)
    C++图书管理系统(管理员-读者)一、设计一款文字式交互的图书管理系统,要求具备注册登录、浏览图书、借还图书等基本功能;二、要求以外部文件的形式存储书籍信息、馆藏记录、......
  • Qt音视频开发04-保存音频文件(pcm/wav/aac)
    一、前言音频的保存相对来说比视频的要简单,具有通用性,不需要经过ffmpeg的编码,ffmpeg解码出来后一般会转换成pcm原始的数据用来播放,所以对数据直接写文件即可,但是这种格式......
  • 初识C语言(结构)
    前言:C语言是一种结构化的程序设计语言。对于新手来说要想学好一门编程语言,除了要了解编程的相关知识,更要了解其结构。“万层高楼平地起”结构就是地基中到比较重要的一环,所......
  • 【221204-1】已知:抛物线y=k/8(x+2)(x-4),与x轴从左至右交于AB两点,与y轴交于C,经过B的直
    该题是“胡不归”的典型应用案例。END......
  • WeetCode3 暴力递归->记忆化搜索->动态规划
    笔者这里总结的是一种套路,这种套路笔者最先是从左程云的b站视频学习到的本文进行简单总结系列文章目录和关于我一丶动态规划的思想使用dp数组记录之前状态计算的最佳......