【习惯】用内插字符串取代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,只要是留到运行时再去解读的信息就都有这个风险,要小心。