Microsoft incorpora tipos de unión en C# 15 para noviembre
La próxima versión de C# introduce tipos de unión y jerarquías cerradas, mejorando la seguridad de tipos y la gestión de memoria.
Microsoft ha anunciado que la versión 15 de C# llegará en noviembre, acompañada de una preview que ya está disponible con .NET 11. Entre las novedades, los tipos de unión (union) permiten agrupar varios tipos personalizados bajo un mismo identificador, algo que ya existía en Python, Scala o TypeScript pero que, según Mads Torgersen, el diseñador principal del lenguaje, "así es como deberían ser los unions".
Con la palabra clave union, el compilador recibe una lista cerrada de tipos que pueden conformar la unión. Por ejemplo, union Pet = Dog | Cat | Bird; define un tipo Pet que solo acepta esas tres clases. Esta restricción elimina la necesidad de wrappers o bibliotecas externas para manejar resultados heterogéneos, como mostró Torgersen y Dustin Campbell al combinar dos registros de éxito/error en una única expresión switch.
Otra pieza clave de C# 15 son las jerarquías cerradas. Usando la palabra clave closed, una clase base limita su herencia a tipos definidos dentro del mismo ensamblado, evitando subtipos de terceros que podrían romper la compilación. Esta medida refuerza la integridad del modelo de objetos y reduce errores inesperados.
El alcance del modificador unsafe también se amplía. Antes, solo indicaba bloques que interactuaban directamente con memoria; ahora, el compilador lo usará para propagar obligaciones de seguridad a los llamadores, siguiendo la línea de Rust y Swift.
Otros añadidos incluyen collection expression arguments, que permiten pasar parámetros como capacidad o comparadores directamente en la sintaxis de expresión de colección mediante la palabra clave with, y la posibilidad de declarar indexadores en bloques de extensión, así como etiquetas para break y continue en bucles anidados.
Estas características buscan reducir boilerplate, mejorar el pattern‑matching y ofrecer contratos más estrictos sin sacrificar la expresividad del lenguaje. Para probarlas, los desarrolladores pueden descargar la preview de .NET 11 desde el sitio de Microsoft.
La incorporación de tipos de unión y jerarquías cerradas marca un paso importante hacia una mayor seguridad de tipos en C#, alineando al lenguaje con tendencias de Rust y Swift mientras mantiene su legado de productividad en el ecosistema .NET.


