Подтвердить что ты не робот

Объявление встроенной переменной не компилируется

Я получаю сообщение в Visual Studio 2017, в частности, IDE0018 Variable declaration can be inlined.

Поэтому я пытаюсь использовать объявление встроенной переменной так, как он упоминал в заметках о выпуске Visual Studio 2017, но я не могу собрать свой проект.

Показывает сообщения об ошибках, но на выходе отображается "Rebuild All failed..... error CS1525: Invalid expression term 'int'"

Ошибка отображается только на выходе, а не как фактическая ошибка в списке ошибок.

Вот фактический пример кода, который я использую, который терпит неудачу.

if (int.TryParse(ExpYear, out int IExpYear))
  {
    if (IExpYear < DateTime.Now.Year || IExpYear > DateTime.Now.AddYears(10).Year)
    {
      e += "Expiration Year is invalid.\n";
    }
  }
  else
  {
    e += "Expiration Year is not a number.\n";
  }

Если я верну свое изменение, он будет компилироваться, как ожидалось. Возможно ли, что я не использую компилятор С# 7 каким-то образом?

Спасибо.

Обновление. Я нашел настройку языка в Build > Advanced и установил ее на С# 7.0. Построение проекта теперь дает мне эту ошибку:

CSC: ошибка CS1617: неверная опция "7" для /langversion; должен быть ISO-1, ISO-2, по умолчанию или целое число в диапазоне от 1 до 6.

4b9b3361

Ответ 1

Мне удалось решить эту проблему, установив пакет Microsoft.Net.Compilers nuget для v2.0.0-rc3, единственная версия, установленная ранее, была 1.3.2.

Я все еще не понимаю, почему ошибки intellisense и компилятора появятся, если установленный компилятор не поддерживает это.

Ответ 2

В случае, если вышеприведенный ответ не работает для вас, так как он не работает для меня, выполните следующие действия:

Откройте файл csproj и проверьте, есть ли у вас следующий пакет, указанный в файле после обновления, если да, удалите его.

<Import Project="packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props" Condition="Exists('packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props')" />

Затем проверьте "Project ToolsVersion". Он должен быть 15,0, он, вероятно, составляет 14,0, поэтому вам нужно изменить это.

<Project ToolsVersion="15.0" .../>

Затем просто перезагрузите РЕШЕНИЕ, и вам хорошо идти. Помните, что если вы выберете "Обновить проект", это даст вам ошибку и не загрузит ее.