本文 proposes 在 C# 中添加类型联合(也称为可区分联合)的方案,以解决需要在单个变量中存储不同类型值的问题。文中详细讨论了四种类型的联合:标准联合类、专门的联合结构体、Ad Hoc 联合和自定义联合,并提供了每种类型的声明、构造、解构、等效性和可赋值性等方面的详细说明,并通过示例代码演示了它们的用法。此外,该提案还讨论了与类型联合相关的其他特性,例如封闭层次结构、单例值、嵌套成员简写、模式匹配和类型推断等。