.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));

這樣類似複合字符串的實現很好的解決了本地化支持,不存在編譯後代碼注入的問題,一個很不錯的技術。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章