[习惯] 用内插字符串取代string.Format()

【习惯】用内插字符串取代string.Format()

        String.Format() 的缺点是编译器不会验证带替换的序号数量和参数数量是不是相等。如果不等,程序就会抛异常。还有可能序号顺序和参数位置不是正确的,这个就容易出错。当然这些都是可以通过耐心避免。

        内插字符串,这样的语法糖就是很好的,更直观的表达参数。

        如:Console.WriteLine($"The value is {i}");  // i是已有参数

        在花括号内也可以写条件表达式,但是条件表达式含有冒号":",字符串格式处理也包含冒号":",为了防止条件表达式中被编译器误解为字符串处理,需要把条件表达式用小括号阔起来。

        如:Console.WriteLine($@"The value is {(found? i : "0")}");   //可以看出,花括号内还可以嵌入式字符串。

        内插字符串还可以用LINQ查询操作来创建内容,但是这个不太会用到产品中。

        使用中,也有些东西需要注意 ,如:

        Console.WriteLine($"The value is {Math.Number}") ;  //Math.Number是double类型,是值类型(应该是string类型,string是引用类型),因此,会自动转换为Object才可以,这样需要装箱操作,就会影响性能,此时就需要改动一下。即下:

        Console.WriteLine($"The value is {Math.Number.ToString()}") ;  //此时花括号内是Object,就不要再转换和装箱了。       

        还有一点尤其注意!内插字符串本身其实也会被解析成一条普通的字符串,因为当填好后,和其他字符串就没有区别了。如果用字符串创建SQL命令,但是内插字符串还是会把它当作一个普通的string对象,所以写SQL是危险的,不仅SQL,只要是留到运行时再去解读的信息就都有这个风险,要小心。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值