当前位置:  开发笔记 > 编程语言 > 正文

内联变量声明不编译

如何解决《内联变量声明不编译》经验,为你挑选了2个好方法。

我在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";
  }

如果我还原更改,它会按预期编译.有可能我不是以某种方式使用c#7编译器吗?

谢谢.

更新:我在Build> Advanced中找到了语言设置并将其设置为C#7.0.现在构建项目会给我这个错误:

CSC:错误CS1617:/ langversion的选项'7'无效; 必须是ISO-1,ISO-2,默认值或1到6范围内的整数.

prudan.. 39

我能够通过安装Microsoft.Net.Compilersv2.0.0 -rc3的nuget包来解决这个问题,之前安装的唯一版本是1.3.2.

我仍然不明白为什么如果安装的编译器不支持这个,则会出现intellisense和编译器错误.



1> prudan..:

我能够通过安装Microsoft.Net.Compilersv2.0.0 -rc3的nuget包来解决这个问题,之前安装的唯一版本是1.3.2.

我仍然不明白为什么如果安装的编译器不支持这个,则会出现intellisense和编译器错误.


您应该注意Visual Studio For Mac不支持"Microsoft.Net.Compilers".*PS我不能评论声誉的原因,所以我只能写一个答案.*

2> 小智..:

如果上述答案对您不起作用,因为它对我不起作用,请执行以下操作:

打开csproj文件并检查升级后是否在文件中引用了以下包,如果是,则将其删除.


接下来,检查"Project ToolsVersion".它必须是15.0,它可能是14.0,所以你必须改变它.


然后只需重新加载解决方案就可以了.请注意,如果您选择"重新加载项目",它将给您一个错误而不加载它.

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有