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
SEAS es el centro de formación online del Grupo San Valero, especializado en el ámbito técnico, industrial y de empresa. Visita www.seas.es para consultar nuestra oferta formativa de cursos y másteres. Formación profesional para el empleo de calidad y accesible para todos.