无法从使用Visual Studio 2017和C#7.0的方法返回Tuple
我已经安装了一周前发布的Visual Studio 2017社区,并且开始探索C#7的新function。
所以我创build了一个返回两个值的简单方法:
class Program { static void Main(string[] args) { (int sum, int count) a = ReturnTwoValues(); } static (int sum, int count) ReturnTwoValues() => (1, 1); }
编译器生成一个错误:
错误CS8137无法定义使用元组的类或成员,因为无法find编译器所需的types“System.Runtime.CompilerServices.TupleElementNamesAttribute”。 你错过了一个参考吗?
我尝试在这个名字的框架中find一个引用,但没有运气!
如果我们需要额外的东西来使用C#7.0的function,那么我们需要为每个项目做到这一点是非常奇怪的!
我刚刚浏览了Roslyn上的这个页面,其中描述了以下步骤来实现这个工作:
- 启动一个C#项目
- 从NuGet添加对
System.ValueTuple
包的引用(预发布)
遵循这些步骤,现在正在工作。 但是我们开始的每个项目都需要这样做,这真的很奇怪。 希望这是固定的,当我们达到官方发布!
我在安装.Net 4.7 Framework之后开始出现这个错误,并将我的项目改为了.Net 4.7
ValueTuple现在包含在.Net 4.7中,所以您不必手动引用ValueTuple。
所有我必须做的纠正编译错误是从我的项目的引用删除对System.ValueTuple的引用。