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

(一) 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));

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

你可能感兴趣的:(C#后端技术)