Объявление встроенной переменной не компилируется
Я получаю сообщение в 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.
Ответы
Ответ 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" .../>
Затем просто перезагрузите РЕШЕНИЕ, и вам хорошо идти. Помните, что если вы выберете "Обновить проект", это даст вам ошибку и не загрузит ее.