C#11新特性原始字符串

.NET7于2022年11月8日发布,在发布的同时也发布了C#11,C#11增加了许多新的特性,比如泛型属性、列表模式、原始字符串等新特性,其中原始字符串这个新特性是用起来比较爽的功能,我们不需要再为处理字符串中的特殊符号而担忧。本文讲述原始字符串的使用。

    在之前我们代码中使用Json字符串时,总是需要用转义符去解决Json中的引号问题,如下:.

string jsonstr = @"{\"Id\":1,\"Name\":\"刘德华\",\"Age\":61,\"Child\":[{\"Id\":5,\"Name\":\"刘小华\",\"Age\":6},{\"Id\":6,\"Name\":\"刘小德\",\"Age\":12}]}";

  如果使用C#11新特性的原始字符串,代码如下:

 string jsonstr = """                 {"Id":1,Name:"刘德华","Age":61,                "Child":[{"Id":5,"Name":"刘小华","Age":6},                {"Id":6,"Name":"刘小德","Age":12}]}"                """;

以上Json字符串代码直接拷贝过来,不需要再处理特殊符号,真安逸。这个就是C#11新特征原始字符串,在字符串前后加三个双引号即可,原始字符串可以包含任意文本,包括空格、新行、嵌入的引号及其他特殊字符。

那么如果需要在中间插入字符串呢?很简单,只需要加2个$符号就解决。代码如下

string Child2 = """{"Id":6,"Name":"刘二德","Age":10}"""; string jsonstr = $$"""                 {"Id":1,Name:"刘德华","Age":61,                "Child":[{"Id":5,"Name":"刘小华","Age":6},                {"Id":6,"Name":"刘小德","Age":12},{{Child2}}]}"                """;Console.WriteLine(jsonstr);

需要注意的是,字符串多行的情况下"""需要跨行,否则要报错。如下代码:

string longMessage = """    你好,欢迎加入DOTNET开发跳槽@""";

正确的写法:

string longMessage = """    你好,欢迎加入DOTNET开发跳槽@    """;

C#11新特性原始字符串

这个功能使用爽吧!

结语

    原始字符串是C#11的语法糖之一,它让我们处理字符串尤其是Json不用再考虑特殊符号,不用再考虑转义符了。希望本文对你有所帮助,欢迎留言或者吐槽。

参考:微软官方文档