.NET6.0插值技术的前世今生

  • Post author:
  • Post category:其他



(一)

C#6.0是一个很重要的版本,字符串插值技术算是新特性,来探究下:

string firstName = "Cai";
string lastName  = "Niao";
            
System.Console.WriteLine($"Your full name is:{firstName} {lastName}");

这里字符串字面值前附加$符号,使得一次性输出全部字符串,这个技术就是

字符串的插值技术



不需要单独执行多个代码段并将结果整合成字符串,该技术允许一个步骤完成全部操作,从而增强了代码的可读性。

再来对比一下C#6.0以前怎么实现:

string firstName = "Cai";
string lastName = "Niao";

System.Console.WriteLine("Your full name is:{0} {1}",firstName,lastName);

这种方式叫作符合格式化,使用占位符来解决。


(二)那字符串的插值技术的内部工作原理又是什么呢?

字符串插值是调用

string.Formart()

方法的语法糖。上边的第一段程序会被换成以下形式:

string firstName = "Cai";
string lastName = "Niao";
object[] args = new object[] { firstName,lastName};
System.Console.WriteLine(string.Format("Your full name is:{0} {1}.",args));

这样类似复合字符串的实现很好的解决了本地化支持,不存在编译后代码注入的问题,一个很不错的技术。



版权声明:本文为tbc123tbc原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。