(一) 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));
這樣類似複合字符串的實現很好的解決了本地化支持,不存在編譯後代碼注入的問題,一個很不錯的技術。