这一直以来是我写代码的一个痛点,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);想要更快更方便的了解相关知识,可以关注微信公众号
![](/i/l/?n=23&i=blog/1101861/202212/1101861-20221204152926460-1760638337.png)
标签:11,firstName,C#,lastName,var,字符串 From: https://www.cnblogs.com/ljknlb/p/16949983.html