C# 15: Novedosos 'union types' facilitan el desarrollo

Fuentes: Explore union types in C# 15 - .NET Blog

Microsoft ha introducido los 'union types' en C# 15, disponibles a partir de .NET 11 Preview 2. Esta nueva característica, muy solicitada por la comunidad, permite declarar un valor como uno de un conjunto fijo de tipos, garantizando el 'pattern matching' exhaustivo y evitando problemas comunes al devolver múltiples tipos desde un método. Anteriormente, soluciones como 'object' carecían de restricciones, mientras que las interfaces y clases base requerían una relación entre los tipos. Los 'union types' resuelven estas limitaciones al permitir la combinación de tipos no relacionados, como 'string' y 'Exception', y ofrecen una experiencia nativa en C#. Un ejemplo práctico es la definición de un tipo 'Pet' que puede ser un 'Cat', 'Dog' o 'Bird'. El compilador verifica que todos los casos posibles se manejen en las expresiones 'switch', evitando errores en tiempo de ejecución. Además, se introduce la posibilidad de agregar métodos directamente al cuerpo de la unión, como en el ejemplo de 'OneOrMore'. Para bibliotecas existentes que ya implementan funcionalidades similares, se ofrece un atributo '[System.Runtime.CompilerServices.Union]' para compatibilidad. Esta nueva funcionalidad se suma a otras propuestas como 'closed hierarchies' y 'closed enums', fortaleciendo la exhaustividad en el manejo de tipos en C#.