.NET 11で待望のunion型がC#に追加

原題: .NET (OK, C#) finally gets union types

なぜ重要か

.NET開発者が関数型プログラミングの利点を享受でき、型安全性とコード表現力が大幅に向上する

Microsoft の .NET 11 プレビュー版で、長年要求されていた union 型が C# 15 に実装された。union キーワードを使用して複数の型を組み合わせることが可能となり、関数型プログラミング言語で一般的な機能が .NET 開発者にも利用可能になった。

.NET 11 プレビュー 4 で、C# 15 に union 型のサポートが追加された。union 型は F#、TypeScript、Rust などの関数型プログラミング言語で広く使用されているデータ構造で、一つの型で複数の異なる型を表現できる機能である。

これまで C# では、異なる型を扱う際に基底クラスの作成、object インスタンスでの格納、タグ値による型管理などの回避策を使用する必要があった。新しい union キーワードにより、これらの問題が解決される。

例えば、Windows、Linux、MacOS を表現する異なるレコード型がある場合、`public union SupportedOS(Windows, Linux, MacOS);` のように定義できる。インスタンス作成は `new SupportedOS(new MacOS("Tahoe", 25))` または暗黙的変換を使用して行える。

Result<TSuccess, TError> のような典型的なパターンも union 型で実装可能で、成功時と失敗時の状態を明示的に処理できるようになる。この機能により、より安全で表現力豊かなコードの記述が可能となる。

出典

andrewlock.net — 元記事を読む →