错误CS8107:C#7.0中不提供功能“元组相等”。请使用语言版本7.3或更高版本

时间:2018-11-16 00:06:17

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

我拥有最新的Visual Studio 2017版本

My Visual Studio version

我尝试过:

  • 具体将C#版本项目设置为7.3 enter image description here

  • 将C#版本项目专门设置为最新

  • 手动修改项目的.csproj(最新修改为C#7.3)
  • 更新了Visual Studio版本
  • 使用.NET Framework 4.7代替4.7.2
  • 安装ValueTuple软件包(此后我立即将其卸载了)
  • 安装Microsoft.Net编译器软件包

所有这些之后,我的项目似乎仍无法在C#7.3中编译,因为当我尝试在调试器中比较两个元组时,它会提示以下错误消息:

The error message I get when I use the debugger

转换为:错误CS8107:C#7.0中不提供功能“元组相等”。请使用语言版本7.3或更高版本

这是我的代码:

 (CRiverGameState, int, bool) osti;
 bool canRaise = _gameState.GetLstAllowedActionsForCurrentPlayer().Contains(ActionsPossible.Raise);
 (CRiverGameState, int, bool) riverKey = (riverGameState, (int)_boardType, canRaise);

 foreach(var tabarnak in CDBHelper.PRiverAllGameStatesFoldStats.Keys)
 {
   if (tabarnak.Item1.PID == 2592 && tabarnak.Item2 == 1089 && tabarnak.Item3 == false)
     osti = tabarnak;
 }

我没主意了。为什么我的项目是用C#7.0而不是C#7.3编译的?

2 个答案:

答案 0 :(得分:1)

您的调试器版本使用C#7.0。

您的项目正在使用C#7.3,但调试器正在使用C#7.0。

如果您这样做:

bool result = (osti == riverKey); // This will return true, but not in the debugger 

这将起作用。

答案 1 :(得分:0)

我遇到了这个问题,尽管版本更高,例如CS8370 C#功能在C#7.3中不可用。请使用语言版本{1}或更高版本。 我发现通过独立的Visual Studio安装程序获得了最新更新,现在已将其清除。 注意:使用Visual Studio“帮助”菜单中的“检查更新”选项,我得到了一个非描述性错误。