Ошибка CS8107: функция "равенство кортежей" недоступна в C# 7.0. Пожалуйста, используйте языковую версию 7.3 или выше
У меня последняя версия Visual Studio 2017
Я пытался:
Специально установить проект версии C# на последний
- вручную изменить.csproj проекта (до последней версии и до C# 7.3)
- Обновлена версия Visual Studio
- Использовал.NET Framework 4.7 вместо 4.7.2
- установить пакет ValueTuple (который я удалил сразу после)
- установить пакет компиляторов Microsoft.Net
После всего этого мой проект все еще не компилируется в C# 7.3, потому что, когда я пытаюсь сравнить два кортежа в отладчике, он выдает следующее сообщение об ошибке:
что означает: Ошибка 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 ответ
Ваша версия отладчика использует 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.