Не удается вернуть кортеж из метода с помощью Visual Studio 2017 и C# 7.0



Я установил сообщество Visual Studio 2017, которое было выпущено неделю назад, и я начал изучать новые функции C# 7.



Так что я создал простой метод, который возвращает два значения:



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

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


компилятор генерирует ошибку:




ошибка CS8137 не удается определить класс или член, который использует кортежи
потому что компилятор требуется тип
- Система.Во время выполнения.CompilerServices.TupleElementNamesAttribute ' не может быть
найдено. Вам не хватает ссылка?




Я пытался найти ссылку в рамках с этим именем, но не повезло !



если нам нужны дополнительные материалы для использования функций C# 7.0, то очень странно, что нам нужно делать это для каждого проекта ?!

606   2  

2 ответов:

Я только что пробежал эту страницу на Рослин, который описывает следующие действия, чтобы получить эту работу:

  1. запустите проект C#
  2. добавить ссылку System.ValueTuple пакет от NuGet (pre-release)

enter image description here

после этих шагов, он теперь работает. Но это действительно очень странно, что мы должны сделать это для каждого проекта, который мы начинаем! Надеюсь, это будет исправлено, когда мы достигнем официального отпустите!

Я начал получать эту ошибку после установки .Net 4.7 Framework и изменил свой проект на целевой .Net 4.7

ValueTuple теперь входит в состав .Net 4.7, поэтому вам не нужно ссылаться на ValueTuple вручную.

все, что мне нужно было сделать, чтобы исправить ошибку компиляции, это удалить ссылку на систему.ValueTuple из ссылок моего проекта.

Comments

    Ничего не найдено.