Autor en Google+
Saltar al contenido

Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web ASP.NET, ASP.NET Core, MVC, SignalR, Entity Framework, C#, Azure, Javascript... y lo que venga ;)

10 años online 🎂

el blog de José M. Aguilar

Inicio El autor Contactar

Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web
ASP.NET, ASP.NET Core, MVC, SignalR, Entity Framework, C#, Azure, Javascript...

¡Microsoft MVP!
martes, 21 de octubre de 2014
image33En otras ocasiones hemos hablado de novedades que acompañarán a la próxima revisión de C# que nos ahorraban algo de tiempo y pulsaciones de tecla a la hora de codificar algunos escenarios bastante frecuentes, a la vez que mejoraban la legibilidad.

Pues en esa misma línea, vemos ahora una nueva forma de inicializar colecciones clave-valor, como son los diccionarios. Ciertamente es un cambio bastante pequeño, de los que fácilmente podrían pasar desapercibidos junto a otras novedades de mayor peso, pero creo que también vale la pena conocerlo.

Para ponernos en situación, echemos un vistazo al siguiente código, totalmente válido en las versiones actuales de C#:



El código anterior es bastante limpio y pocas pegas se le podría poner, salvo que a primera vista no queda claro en absoluto qué tipo de estructura es CustomColorConverter. Si lo pensamos un poco, veremos que no es sino un Dictionary<string, string>  disfrazado, pero está claro que los elementos con los que lo estamos inicializando no expresan claramente que se trata de una colección de claves y valores. De hecho, a priori una expresión como { "red", "yellow"} pasaría mejor por ser un array o algún tipo de tupla que por ser un diccionario.

Para mejorar la legibilidad en estos escenarios, C# 6 introducirá una sintaxis adicional para la inicialización de este tipo de construcciones. No reduce el número de teclas a pulsar a la hora de escribirlo, pero sin duda deja bastante más claro qué es lo que estamos haciendo:



Ahora sí que salta a la vista que estamos cargando un diccionario, ¿verdad?

Otro ejemplo claro de uso, a menudo citado a la hora de hablar de esta nueva característica, es a la hora de utilizar diccionarios para crear objetos que posteriormente van a ser serializados, por ejemplo, en JSON:



Para finalizar, como curiosidad, decir que hasta hace bien poco se ha mantenido en la lista de características candidatas para C# 6 la introducción del símbolo $ tanto para inicializar diccionarios como para acceder de forma rápida a su contenido con una sintaxis similar a la siguiente:

image

Y salvo la ligera y molesta sensación de estar tocando código PHP, la verdad es que no pintaba mal, pero finalmente ha sido descartada. En principio, este uso del símbolo $ no vendrá la luz en la próxima versión de C#, aunque no se cierra la puerta a que en el futuro se introduzca si existe demanda por parte de la comunidad.

Otros posts de la serie:
Publicado en Variable not found.

Estos contenidos se publican bajo una licencia de Creative Commons Licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España de Creative Commons

2 Comentarios:

Maxi lovera dijo...

Hola, muy buen artículo. Se sabe la fecha de release de la nueva versión???

José M. Aguilar dijo...

Hola, Maxi!

Pues no, que sepa no hay fechas de momento.

Saludos!