获取"元组名称是推断的。请使用语言版本7.1或更高版本通过其推断名称访问元素。"

时间:2017-08-14 23:19:46

标签: c# visual-studio uwp visual-studio-2017 c#-7.0

我们将以下代码在我们的UWP应用程序中运行良好,直到今天我们将Visual Studio 2017更新为最新的 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);
}

在输出窗口

中没有错误消息
  

元组元素名称&#39;项目&#39;是推断。请使用语言版本   7.1或更高版本,以通过其推断名称访问元素。

知道为什么以及如何解决这个问题?

3 个答案:

答案 0 :(得分:65)

Project-&gt; Properties-&gt; Build-&gt; Advanced-&gt; Language Version-&gt; C#latest minor Version

答案 1 :(得分:10)

这是一个确认的错误,在15.3中引入。该修复程序将作为服务版本(15.3.2)的一部分提供。

https://github.com/dotnet/roslyn/issues/21518

跟踪问题

答案 2 :(得分:7)

看起来这是C# 7.1 中的breaking change(正如@JulienCouvreur所指出的,这实际上是一个错误,但下面的解决方法应该是仍然工作)。

解决方法

尝试将{em>名称(例如,使用IList<(string, bool)> items中的同一名称items明确地一致)明确地var group = (Guid.NewGuid(), items: items); (即列表实例)。< / p>

navigationView.setCheckedItem(R.id.something)