c# - Obteniendo "El nombre del elemento Tuple es inferido. Utilice la versión de idioma 7.1 o superior para acceder a un elemento por su nombre inferido ".
visual-studio uwp (3)
Tenemos el siguiente código que ha funcionado bien en nuestra aplicación UWP hasta hoy después de actualizar Visual Studio 2017 a la última versión 15.3 .
private void Test()
{
var groups = new List<(Guid key, IList<(string, bool)> items)>();
var items = new List<(string, bool)>
{
("a", true),
("b", false),
("c", false)
};
var group = (Guid.NewGuid(), items);
groups.Add(group);
}
No hay mensaje de error, pero esto en la ventana de salida
Se deduce el nombre del elemento Tuple ''elementos''. Utilice la versión de idioma 7.1 o superior para acceder a un elemento por su nombre inferido.
¿Alguna idea de por qué y cómo solucionar esto?
Proyecto-> Propiedades-> Compilación-> Avanzado-> Versión del lenguaje-> C # última versión menor
Parece que este es un cambio radical en C # 7.1 . (como señaló @JulienCouvreur, esto es realmente un error, pero la solución a continuación aún debería funcionar).
Solución
Intente dar un nombre (por ejemplo, use los mismos items
del nombre de IList<(string, bool)> items
para ser consistentes) explícitamente para los items
(es decir, la instancia de la lista).
var group = (Guid.NewGuid(), items: items);
Este es un error confirmado, introducido en 15.3. El arreglo se enviará como parte de una versión de servicio (15.3.2).
El problema se rastrea en https://github.com/dotnet/roslyn/issues/21518