C# 7, mejoras y novedades

Ya tenemos disponible la versión 7 de C#, como vemos es el lenguaje .net que más evoluciona, mientras el resto de lenguajes están estancados, C# no deja de evolucionar.

“Si trabajas con .Net, C# es tu lenguaje”.

Dicho esto, como opinión personal compartida por muchos y discutida por otros, no me voy a meter en las virtudes de este leguaje, en este post me voy a limitar a indicar las mejoras que han añadido en esta versión 7. Algunas muy útiles, otras no tanto, pero de todas debemos estar informados.

 .Net, C#: Tuplas

¿Pero qué es eso de tuplas? En muchos casos he tenido que hacer una función en la que tengo que devolver dos datos (o tres, o cuatro, …), para resolver esto tenemos varias opciones con las versiones anteriores:

  •  Parámetros de salida
    Definiremos una función de este tipo por ejemplo:
    public void DameDatos(out int data1, out int data2, …)
    Es una posible opción, pero no muy válida (luego veremos otra ventaja de c# 7 respecto a los valores de salida en los métodos)

 

  • Definir una clase
    Podemos definir una clase de salida y quedaría algo así:
    public Data DameDatos()

Donde luego definiremos la clase Data:

public class Data
{
public int Data1 { get; set; }
public int Data2 { get; set; }

}

 

  • Definir tupla de salida
    Por último esto lo podríamos resolver de esta forma:
    public Tuple<int, int, …> DameDatos()

Donde este método retorna dos valores enteros (3, o los que queramos)

 

  • Solución con C# 7
    public (int data1, int data2, …) DameDatos()

Como podemos observar, estamos creando una tupla en tiempo de diseño automáticamente, además le estamos dando nombre a esas variables de la tupla, otra ventaja más al de una tupla convencional que luego para acceder a sus datos hay que hacerlos de la forma Object.Item1, Object.Item2.

.Net, C#: Parámetros de salida

Tal y como he comentado en la mejora anterior respecto a los parámetros de salida, C# 7 nos proporciona de otra mejora para agilizar el código

En las versiones anteriores para definir y usar un método con variables de salida, teníamos la obligación de primero declararlas y luego usarlas, como este ejemplo:

  • Teniendo el método anterior:
    public void DameDatos(out int data1, out int data2, …)

 

  • Para usar esta function debemos hacer esto:
    int data1, data2;

DameDatos(out data1, out data2);

 

  • Sin embargo con esta nueva versión podemos hacerlo todo de un solo paso a la hora de ejecutar:

DameDatos(out decimal data1, out decimal data2);

Y luego hacer uso sin problema de las variables creadas data1 y data2

 

Tenemos varias novedades más que veremos más adelante en próximos post, estas yo creo que son las que más valor añadido me están aportando, a medida que vaya probando nuevas funcionalidades las iré escribiendo.

No obstante en esta web tenemos las novedades indicadas: https://msdn.microsoft.com

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *