這篇筆記要介紹 C# 10 的兩項改進:字串常數插補、分解式。
字串常數插補
C# 9 不允許字串常數使用字串插補(string interpolation,或「字串插值」),例如:
const string AppName = "我的程式";
const string Version = "1.0";
const string ProductName = $"{AppName} {VersionName}";
第 3 行在 C# 9 無法通過編譯,從 C# 10 開始則沒有問題。
分解式的改進
閱讀以下程式片段:
var student = (Id: 1, Name: "Mike"); // tuple
(int id, string name) = student; // 分解
Console.WriteLine($"{id}-{name}"); // "1-Mike"
第 1 行程式碼建立了一個 tuple,接著第 2 行將此 tuple 分解為兩個變數 id
和 name
。在 C# 10 之前,第 2 行用來承接分解結果的變數必須全部宣告在一對括弧裡面。到了 C# 10,此限制被放寬了,可以這樣寫:
string name;
var student = (Id: 1, Name: "Mike");
(int id, name) = student; // C# 9 編譯失敗,C# 10 OK!
也就是說,物件分解的結果可以全部宣告在一對括弧中,也可以混合其他變數。
Happy coding!🌞
沒有留言: