C# 7.1 – Specification – Inferred Tuple Element Names
Otra de las característica agregadas a C# 7.1 es la que se denomina como Inferred Tuple Element Names.
Se trata de una pequeña mejora relativa a las tuplas, que fueron introducidas en la especificación de C# 7.0 y sobre la que puedes encontrar información en este enlace.
Cuando trabajamos con tuplas en C# 7.0, nos vemos obligados a indicar el nombre del campo de la tupla en su asignación.
Esto que parece lógico, resulta redundante cuando en la asignación del nombre de la tupla, tenemos el mismo nombre que el valor que se le asigna.
Dicho de otro modo, el siguiente ejemplo es como podríamos llevar a cabo esta operación en C# 7.0:
private static void InferredTupleElementNames() { var name = "Fiscal Year"; var count = 2017; // C# 7.0 var data = (name: name, count: count); Console.WriteLine($"{nameof(data.name)} => {data.name}"); Console.WriteLine($"{nameof(data.count)} => {data.count}"); }
Como podemos apreciar, a la hora de declarar la tupla data, estamos indicando dos campos, el primero con el nombre name, y el segundo con el nombre count.
En C# 7.1, podemos declarar esto mismo de forma directa, infiriéndose el nombre de forma directa y transparente.
El ejemplo anterior, quedaría en C# 7.1 de la siguiente forma:
private static void InferredTupleElementNames() { var name = "Fiscal Year"; var count = 2017; // C# 7.1 var data = (name, count); Console.WriteLine($"{nameof(data.name)} => {data.name}"); Console.WriteLine($"{nameof(data.count)} => {data.count}"); }
Se trata de una simple mejora que simplifica a veces nuestro código.
¡Happy Coding!