[C#] .NET10 params collection 可以放入 List 了
最近在看 C# 14 的更新,看到一個蠻好用的語法。
叫做 "params collection",就是在設計 function 中最後一個引述加入 params
以前的 params 只能吃 基本型態的 array,在實務上其實有點卡特別是要丟物件群、List 的時候更明顯..
以前 params 只能用在 array
你要丟一堆物件進方法,只能這樣寫
問題很簡單
實務上我們不常用 array 來處理物件集合
我們用的是 List、Span、ReadOnlySpan
這些原本都不能直接塞進 params
到了 C# 14,多了一個比較順手的寫法..
你可以直接把 "params" 放在 collection 前面
這裡的 ["A", "B", "C"] 是 C# 的 list expression
不用 new List。不用 new string[]。不用轉型
但是實務上最有感的差異是可以直接塞物件
例如做 Validation Pipeline
以前這一段寫法看起來就很硬。
用 C# 14 的寫法就非常自然。
這種寫法在實務上真的很常見
因為 Validator、Handler、Rule、Step 這些東西本來就會用物件集合來表現
以前為了丟進 params,被迫 new 一個 array 非常不自然
現在用 list expression + params collection 就剛好符合語意。
用 Span 的寫法在 C# 14 看起來很順。
下面快速整理以前 vs 現在的差異。
語意差別很簡單。
結論:
C# 14 的 "params collection" 是比想像中更常用的語法糖..
用在 validator..的場景非常自然,也不需要再為了 params 去 new array
搭配 list expression,更像是現代 C# 的自然寫法。整體程式碼變乾淨,也更符合我們日常在寫的集合邏輯..
