错误 CS8107:功能 'tuple equality' 在 C# 7.0 中不可用。请使用 7.3 或更高版本的语言

Error CS8107: Feature 'tuple equality' is not available in C# 7.0. Please use language version 7.3 or greater

我有最新的Visual Studio2017版

我试过:

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

转换为:错误 CS8107:功能 'tuple equality' 在 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 编译的?

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

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

如果你这样做:

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

这会起作用。

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