C# 7.0 – Specification – Introducción
El 7 de Marzo de 2017, Microsoft anunció la disponibilidad de Visual Studio 2017 y con ella, de C# 7.0.
Entre las características añadidas al lenguaje C# en su especificación C# 7.0, podemos encontrar las siguientes:
- Generalized async return types
- Discards
- Tuples (Tuples Enhancement)
- Deconstruction
- Out variables
- Expression Bodied Members
- Throw Expressions
- Ref returns and Ref locals
- Pattern Matching
- Digit Separators
- Binary Literals
- Local Functions
A lo largo de próximas entradas en este blog, tengo planeado repasar, comentar y hablar cada una de estas características añadidas a C# 7.0.
No obstante, y si quieres acceder por tu cuenta a la actual especificación de C#, puedes hacerlo desde este enlace.
Puedes encontrar el código fuente de todos los ejemplos en mi repositorio de GitHub. Accede a esta entrada para saber más acerca de esto.
¡Happy Coding!
5 Responsesso far
Ojo que la especificación que se ofrece en GitHub corresponde a la versión 6.0. La actualización de la especificación a las novedades de C# 7.x la está llevando a cabo actualmente un grupo de expertos, en el que sé que participa Jon Skeet.
Abrazo!
¡Muchas gracias por responder maestro!
No te falta razón, y es que ese enlace (hoy) es aún la especificación 6.0 de C#, aunque es de suponer (sino se cambia de idea), que será donde se ponga la versión 7.0 en un futuro una vez pase la aprobación de ECMA.
Es por eso precisamente, que ante la ausencia de un documento de especificación oficial de 7.0, 7.1, 7.2, 8.0… (y lo que tenga que venir), estoy haciendo estas entradas para que por lo menos quede reflejado en algún sitio lo más ordenado posible… ya que no lo he visto así en ningún sitio y los programadores nos hacemos un poco de lío ahora mismo.
Pero tienes razón al afirmar que el repo de GitHub corresponde con la v6.0 de C# (de momento como digo).
Existe una discusión muy interesante al respecto en este enlace:
https://lists.dot.net/pipermail/csharplang/2017-February/000068.html
Y el enlace anterior, sale de esta interesante discusión:
https://github.com/dotnet/csharplang/issues/64
Como vemos… la estandarización de ECMA es lenta y el proceso de escribir la especificación en «limpio» también.
Se quiere poner orden, pero la intención es una cosa, y lo que se logre es otra.
En principio sería ahí donde debería estar en unos meses… (espero).
Excelente trabajo, Jorgito!
Gracias por el enlace, que no había visto!
Los planes de Mads parecen buenos, pero con los ciclos de cambios actuales (ya vamos para C# 7.2 :-)) va a ser difícil ponerse al día…
Fuerte abrazo!
Opino exactamente igual.
Vamos por 7.2 y camino de 8.0 y es un poco farragoso entender bien los cambios y seguir el hilo.
Por eso me propuse escribir sobre ello para intentar aclarar un poco.
Me dí cuenta el otro día que tú también estás escribiendo en tu blog sobre esto, y creo que es muy bueno que varios lo hagamos dando nuestros particulares puntos de vista. 🙂
Abrazos!!!
Hay mucha confusión respecto a NET en general, versiones NET Core, NET Framework, NET SKDS, soporte que tienen para Sistemas Operativos, versiones de Visual Studio y a su vez con versiones de TFS. Además especificaciones NET Standard, C# …
Jon Skeet son palabras mayores.