Saltar al contenido

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

18 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 Core, MVC, Blazor, SignalR, Entity Framework, C#, Azure, Javascript...

¡Microsoft MVP!
martes, 16 de septiembre de 2014
Novedades de C# 6.0Hace algún tiempo comentamos alguna de las novedades que se incluirán en la próxima versión de C#, concretamente el nuevo operador de navegación segura “?.”, pero la cosa no acaba aquí: se avecinan un buen número de cambios que prometen seguir mejorando nuestro lenguaje favorito :-)

Por ejemplo, una nueva característica que tendremos disponible es la inicialización de propiedades automáticas, algo que antes también podíamos hacer, aunque de forma menos directa.


Es decir, hasta el momento para inicializar una propiedad automática teníamos que hacerlo en el constructor de la clase, como sigue:



Pues bien, en la nueva versión podremos usar una nueva construcción mucho más directa:



Simplemente añadimos la expresión de igualdad tras la declaración, y listo. Además del obvio ahorro en pulsaciones de teclas, el resultado a nivel de código es más expresivo y legible, puesto que mantiene unida la definición de la propiedad con su valor inicial.

Los valores usados en la inicialización son los que podríamos suponer de forma intuitiva: constantes, miembros estáticos o llamadas a métodos estáticos, nada de referencias a this o a otros miembros de instancia de la clase. Vaya, igual que en la inicialización de miembros privados de la clase de toda la vida.

Y como era de esperar, la inicialización se producirá antes de que la ejecución pase por el constructor, por lo que en ese punto ya tendremos los valores cargados si los necesitamos para algo:



Por supuesto, es algo que también podemos utilizar con propiedades en las que el setter es privado, puesto que la inicialización es interna a la clase:



E incluso hace posible el uso de propiedades automáticas de sólo lectura, algo que antes sólo podíamos conseguir usando propiedades con backing fields:



En fin, que sin ser un cambio espectacular, se trata de uno de esos pequeños detalles que nos hará la vida algo más fácil cuando aterricen las nuevas versiones de todo que se están cocinando.

Publicado en Variable not found.

Aún no hay comentarios, ¡sé el primero!