C# 逐字字符串和原始字符串字面值

1、逐字字符串

在字符串变量存储文本时,可以包括转义序列,转义序列用反斜杠“\”表示,如制表符“\t”和换行符'\r''\n':

string path = "C:\notebook\tel";

Console.WriteLine(path);

运行结果:

C:
otebook el.txt

很明显这不是我们想要的结果,这是一个完整路径,应该原样显示!

很简单,在c#中,使用逐字字符串时,在前面加一个"@"符就好了。

string path = @"C:\notebook\tel.txt";

Console.WriteLine(path);

重新运行结果:

C:\notebook\tel.txt

2、原始字符串字面值

C# 11中引入了原始字符串字面值的特性,该特性可方便地输入任何文本而不必转义内容。

原始字符串字面值应该以三个或三个以上的双引号开始和结束

string path = """
    C:\notebook\tel.txt
""";

Console.WriteLine(path);

运行结果:

C:\notebook\tel.txt

编译器会检查原始字符串字面值的最后三个(或多个)引号缩进级别,然后自动删除所有内容中该级别的缩进

string xml = """"   
    <person age="10">
        <name>小明</name>
            </person>
    """";

Console.WriteLine(xml);

运行结果:

<person age="10">
    <name>小明</name>
        </person>

如果最后三个引号与左边对其,那么空格将不会被移除:

string xml = """"
    <person age="10">
        <name>小明</name>
            </person>
"""";
    <person age="10">
        <name>小明</name>
            </person>

3、原始内插字符串字面值

修改前面的代码:

var  person = new { age = 12, name = "小明" };

string xml = $$""""   
    <person age="{{person.age}}">
        <name>{{person.name}}</name>
            </person>
    """";

Console.WriteLine(xml);

通过在内插字面值的开头添加对应数量的"$"符,可将使用花括号"{}"的内插字符串与原始字符串字面值混合使用.

int age=10;

string name = "小明";

string json=$$"""
{
    "name":{{name}},
    "age":{{age}}
}
""";

Console.WriteLine(json);

变量json运行结果:

{
    "name":小明,
    "age":10
}

"$"符的数量决定告诉编译器应该使用多少个花括号才能将对应内容识别为插值表达式。

string json=$$$"""
{
    "name":{{name}},
    "age":{{age}}
}
""";

Console.WriteLine(json);

这里只能跑出如下结果:

{
    "name":{{name}},
    "age":{{age}}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值