Entrada prohibida para tipos no invitados: Microsoft endurece las reglas de C#

Entrada prohibida para tipos no invitados: Microsoft endurece las reglas de C#

El compilador ya no tendrá que adivinar qué quiso decir el desarrollador.

image

Los lenguajes de programación maduros rara vez reciben una característica que la comunidad ha esperado durante años. Microsoft presentó una versión preliminar de C# 15 con tipos de unión, jerarquías cerradas y nuevas reglas para el código unsafe. El lanzamiento del lenguaje junto con .NET 11 está previsto para noviembre de 2026.

Tipos de unión permiten indicar explícitamente varias alternativas válidas para un valor. La nueva palabra clave union, por ejemplo, unirá los tipos Cat, Dog y Bird en un tipo común Pet. La lista permanece cerrada, por lo que el compilador no permitirá un valor de otro tipo y verificará de antemano que el programa ha manejado cada variante permitida.

La construcción será útil en funciones que devuelven resultados distintos, por ejemplo una respuesta exitosa con un número o un mensaje de error. Antes se usaban object, interfaces genéricas, clases envoltorio adicionales o bibliotecas externas para estos casos. Union establece un contrato único y permite analizar el resultado mediante switch sin una rama para valores desconocidos.

C# 15 también tendrá jerarquías cerradas. El modificador closed limitará la herencia directa a clases del mismo ensamblado y evitará que código externo añada subtipos inesperados. Si un desarrollador amplía el conjunto permitido, el compilador señalará las partes del programa donde la nueva variante no está manejada, en lugar de provocar un fallo en tiempo de ejecución.

Microsoft revisa simultáneamente el modelo unsafe. La palabra clave no solo indicará operaciones con punteros, sino también las obligaciones del código que llama para mantener la seguridad de la memoria. El compilador podrá rastrear dichos requisitos entre métodos. El nuevo modelo sigue siendo experimental, por lo que su sintaxis y comportamiento pueden cambiar en versiones posteriores.

Entre otras novedades aparecen argumentos para expresiones de colección, indexadores en bloques de extensión y etiquetas para break y continue que facilitan salir de bucles anidados. Todas las funcionalidades anunciadas ya están disponibles para probar en .NET 11 Preview 7. El lanzamiento oficial de .NET 11 se celebrará durante la conferencia .NET Conf del 10 al 12 de noviembre.