无法在使用Visual Studio 2017和C# 7.0时从方法返回元组。

9 浏览
0 Comments

无法在使用Visual Studio 2017和C# 7.0时从方法返回元组。

我安装了一周前发布的Visual Studio 2017 Community,并开始探索C# 7的新特性。\n所以我创建了一个返回两个值的简单方法:\n

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

\n编译器生成了一个错误:\n

错误 CS8137 无法定义使用元组的类或成员,因为编译器所需的类型
'System.Runtime.CompilerServices.TupleElementNamesAttribute'找不到。是否缺少引用?

\n我尝试在框架中找到这个名称的引用,但没有找到!\n如果我们需要额外的东西来使用C# 7.0的特性,那么每个项目都需要这样做,真是太奇怪了!

0
0 Comments

Unable to return Tuple from a method using Visual Studio 2017 and C# 7.0问题的原因和解决方法

问题描述:

最近在更新.NET 4.7.2后,我在使用Visual Studio 2017和C# 7.0时遇到了一个错误,即无法从方法中返回Tuple。

解决方法:

通过重新安装nuget包来解决这个问题,具体操作如下:

1. 打开Visual Studio 2017。

2. 在"工具"菜单中选择"NuGet包管理器",然后选择"程序包管理器控制台"。

3. 在打开的控制台中输入以下命令:Update-Package -Reinstall

4. 按下回车键执行命令,等待nuget包重新安装完成。

5. 重新编译和运行项目,检查是否仍然存在无法返回Tuple的问题。

以上就是解决"Unable to return Tuple from a method using Visual Studio 2017 and C# 7.0"问题的方法。通过重新安装nuget包,我们可以解决这个问题并恢复代码的正常运行。希望以上内容对解决类似问题的读者有所帮助。

0
0 Comments

问题的原因是在安装了.NET 4.7 Framework并将项目改为目标.NET 4.7之后出现了该错误。ValueTuple现在已经包含在.NET 4.7中,因此不需要手动引用ValueTuple。

解决该编译错误的方法就是从项目的引用中删除对System.ValueTuple的引用。

通过遵循这个建议,现在ValueTuple已经包含在.NET 4.7中,不再需要从NuGet安装。谢谢。

在.NET中,我们已经可以使用ValueTuple了,无需再进行额外的安装。我将项目的目标设置为.NET 4.7.2。

0
0 Comments

无法使用Visual Studio 2017和C#7.0从方法中返回元组的问题是由于缺少System.ValueTuple包的引用而引起的。通过在每个项目中添加对System.ValueTuple包的引用,可以解决此问题。这是一个临时解决方法,因为在下一个.NET框架版本中,这个功能应该已经内置了。如果在下一个版本中仍然没有内置这个功能,则需要进行解释。如果使用.NET Framework 4.7或更高版本,则不需要手动添加System.ValueTuple的引用,因为它已经是该版本的一部分。

0