No se puede devolver Tupla desde un método usando Visual Studio 2017 y C # 7.0


He instalado Visual Studio 2017 Community que se lanzó hace una semana, y empecé a explorar las nuevas características de C# 7.

Así que creé un método simple que devuelve dos valores:

public class Program
{
    public static void Main(string[] args)
    {
        (int sum, int count) a = ReturnTwoValues();
    }

    static (int sum, int count) ReturnTwoValues() => (1, 1);
}

El compilador está generando un error:

Error CS8137 No puede definir una clase o miembro que utiliza tuplas porque el compilador requiere el tipo Sistema.Ejecución.CompilerServices.TupleElementNamesAttribute ' no puede ser encontrar. ¿Te estás perdiendo un referencia?

Traté de encontrar una referencia en el marco con este nombre, pero sin suerte !

Si necesitamos cosas adicionales para usar las características de C # 7.0, entonces es muy raro que tengamos que hacer eso para cada proyecto.!

Author: AustinWBryan, 2016-11-27

2 answers

Acabo de revisar esta página en Roslyn que describe los siguientes pasos para que esto funcione:

  1. Iniciar un proyecto en C#
  2. Añadir una referencia a la System.ValueTuple paquete de NuGet (pre-lanzamiento)

introduzca la descripción de la imagen aquí

Siguiendo esos pasos, ahora está funcionando. ¡Pero es realmente muy raro que tengamos que hacer eso para cada proyecto que comenzamos! Espero que esto se arregle cuando lleguemos al lanzamiento oficial!

 98
Author: user3185569,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-11 22:47:08

Empecé a recibir este error después de instalar. Net 4.7 Framework, y cambié mi proyecto a destino. Net 4.7

ValueTuple ahora se incluye con.Net 4.7, por lo que no tiene que hacer referencia al ValueTuple manualmente.

Todo lo que tuve que hacer para corregir el error de compilación fue eliminar la referencia a System.ValueTuple de las referencias de mi proyecto.

 27
Author: aaaa bbbb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-26 23:53:21