Ошибка CS8107: функция «равенство кортежей» недоступна в C # 7.0. Пожалуйста, используйте языковую версию 7.3 или выше - PullRequest
0 голосов
/ 16 ноября 2018

У меня самая последняя версия 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?

1 Ответ

0 голосов
/ 16 ноября 2018

Ваша версия отладчика использует C # 7.0.

Ваш проект использует C # 7.3, но отладчик использует C # 7.0.

Если вы делаете:

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

Это будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...