Detalle de los planes de C# 8.0 para .NET Core 3.0
Hace ya bastante tiempo, Microsoft anunció la espeficación de C# 7.0.
Posteriormente, Microsoft añadió minor releases a la especificación, anunciando C# 7.1, C# 7.2 y C# 7.3.
Ahora le llega el turno a la especificación C# 8.0 que saldrá al mismo tiempo que .NET Core 3.0.
Las características de C# 8.0 irán apareciendo con las versiones preliminares de Visual Studio 2019 y .NET Core 3.0.
Aspectos como los Tipos por Referencia Nullable, Async Streams, Rangos e Índices, Implementaciones por Defecto de Miembros de Interfaz, Patrones Recursivos, Expresiones Switch y Nuevas Expresiones Tipadas Objetivamente (o Target-typed new-expressions para una mejor traducción a nuestro idioma).
Muchas de las caractetísticas del lenguaje para C# 8.0 se ejecutarán en cualquier versión de .NET, sin embargo, existen algunas dependencias que deberemos tener en cuenta.
Async Streams, Rangos e Índices se apoyan en los tipos que forman parte de .NET Standard 2.1.
Aquí, conviene aclarar que .NET Core 3.0, Xamarin, Unity y Mono implementarán .NET Standard 2.1, pero no así .NET Framework 4.8.
La característica de Implementaciones por Defecto de Miembros de Interfaz es dependiente de las mejoras del runtime y no permitirá que funcione en .NET Framework 4.8.
En resumen, cuando usemos C# 8.0 en .NET Framework 4.8, estas dos características no estarán disponibles.
El propósito del equipo respecto a la especificación del lenguaje y su compatibilidad se centra en la estabilidad del lenguaje.
Por todo esto, la innovación en .NET Framework será menor en un futuro.
Para más información al respecto de esto último, accede a este enlace.
Podrás acceder a la información sobre C# Language Design en este enlace.
Podrás acceder a la información sobre C# Language Design Notes en este enlace.
Podrás acceder a la noticia oficial de este anuncio en este enlace.
Happy Coding!