C# 10:字串常數插補與分解式的改進

 這篇筆記要介紹 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!🌞

沒有留言:

技術提供:Blogger.
回頂端⬆️