Nuevas características en C# 7+ – Parte 1

Durante el año 2017 se lanzó la versión 7 del lenguaje C#, con algunas actualizaciones posteriores (la versión actual al momento de escribir este post es la 7.2). En su nueva versión, el lenguaje ha traido algunas novedades producto de su normal evolución, con el fin de ser más eficiente y darnos nuevas posibilidades a los desarrolladores a la hora de escribir nuestro código.

En una serie de posts vamos a ver algunas de las novedades:

Tuplas

Las tuplas han estado en el lenguaje desde versiones anteriores, pero tienen algunos inconvenientes como tener que acceder a las propiedades con el nombre ItemX, así como la sintaxis para inicializar las tuplas se hace muy compleja de entender a medida que crecen las propiedades. Este es un ejemplo de una tupla:

En C# 7 se ha introducido el nuevo tipo ValueTuple, el cual tiene mejoras con respecto a lo mencionado anteriormente. El equipo de desarrollo de C# ha hecho un muy buen trabajo y ahora contamos con algunas ventajas como una inicialización más sencilla, así como también podemos asignar un nombre a las variables que componen la tupla para acceder a ella posteriormente.

var tuple = new Tuple<stringdecimal>("T-Shirt", 100.0m);
 
Console.WriteLine($"Product - Name: {tuple.Item1}, Price: {tuple.Item2}");

Veamos a continuación el mismo ejemplo usado anteriormente, pero escrito con las nuevas tuplas:

(string name, decimal price) tuple = ("T-Shirt", 100.0m);
 
Console.WriteLine($"Product - Name: {tuple.name}, Price: {tuple.price}");

Otra cosa para resaltar, es la facilidad que tenemos los desarrolladores al poder tener ayuda del intellisense de Visual Studio al momento de escribir el código

TupleCS7

Default literals:

En versiones anteriores hemos estado acostumbrados a usar el operador default(T) para obtener el valor por defecto de un tipo específico, por ejemplo:

int i = default(int);
string str = default(string);
Product p = default(Product);

Ahora podemos usar el literal ‘default’ para indicar el mismo valor por defecto. El código anterior lo podemos escribir así:

int i = default;
string str = default;
Product p = default;

Adicional a esto, ahora también podemos usar el literal ‘default’ en las comparaciones, por ejemplo:

int i = default;
 
if (i == default)
{
    Console.WriteLine($"i is default {i}");
}
 
i = 2;
 
if (i != default)
{
    Console.WriteLine($"i is not default now. The new value is {i}");
}

 

Hasta acá un par de novedades en este post. En próximos posts vamos a estar explorando más novedades. Estén pendientes!

El código de ejemplo de este post lo puedes encontrar en un repositorio de mi cuenta de GitHub.

2 Responses to Nuevas características en C# 7+ – Parte 1

  1. Pingback: Nuevas características en C# 7+ – Parte 2 | hgr.net

  2. Pit says:

    Reblogueó esto en Peter Joseph Concha Regattoy comentado:
    Muy buenas con todos, les estaré comportiendo una serie de post interesantes de mi compañero Hernan.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: