探索 C# 15 中的联合类型 - .NET 博客

4/2/2026, 6:09:10 PM

📌 一句话摘要

C# 15 在 .NET 11 Preview 2 中引入了 `union` 关键字,使开发者能够定义封闭的类型集,并利用编译器强制的穷举模式匹配,从而编写更安全、更具表现力的代码。

📝 详细摘要

本文详细介绍了 C# 15 中引入的联合类型(union types),这是一项备受期待的功能,允许开发者声明变量可以持有的封闭类型集。该功能解决了以往 C# 版本中必须使用 `object`、标记接口或抽象基类来模拟联合类型的局限性。`union` 关键字确保了类型安全和编译时的穷举模式匹配,能够在构建过程中捕获缺失的情况。文章提供了实际示例,包括 `OneOrMore` 的实现,解释了如何使用特性(attributes)为现有库定义自定义联合类型,并将此功能与即将推出的封闭层级(closed hierarchies)和封闭枚举(closed enums)等提案相结合,以完善 C# 的穷举性体系。

💡 主要观点

  1. 引入 `union` 关键字 C# 15 引入了一种声明封闭类型集的原生方式,取代了 `object` 或标记接口等安全性较低的替代方案,并为可辨识联合(discriminated unions)提供了 C# 原生的体验。
  2. 编译器强制的穷举性 编译器确保 `switch` 表达式覆盖所有可能的 case 类型,在构建时而非运行时捕获缺失的情况,从而显著提高了代码的可靠性。
  3. 可扩展性与自定义 开发者可以使用 `[Union]` 特性创建自定义联合类型,允许现有库采用类似联合类型的行为和非装箱(non-boxing)访问模式,且无需进行破坏性更改。
  4. 更广泛的语言路线图 联合类型是 C# 改进穷举性这一更大努力的一部分,它与封闭层级和封闭枚举等拟议功能相辅相成,旨在为类型安全提供全面的解决方案。

💬 文章金句

📊 文章信息

AI 评分:89
来源:Microsoft for Developers
作者:Bill Wagner
分类:软件编程
语言:英文
阅读时间:6 分钟
字数:1459
标签: C# 15, .NET 11, 联合类型, 模式匹配, 语言特性
阅读完整文章

阅读原文 QR Code 返回目录