在Visual Studio 2017(目标框架.NET 4.5,vs + resharper)上构建和测试我的解决方案之后,我使用Visual Studio 2015(相同的目标框架)在生产环境中运行它。
在这种情况下,我在尝试构建它时收到语法错误。
例如:
public double Frequency
{
get => _frequency;
set
{
if (value > 0)
_frequency = value;
}
}
在VS 2015中,我得到:
“ {或;预期”
为什么会这样?
答案 0 :(得分:4)
您用于获取定义的特定功能(表达式身体成员)特定于C#7.0版as detailed here。
因此,您的代码未编译的原因是因为VS 2015使用C#6.0而VS 2017使用C#7.0。
您可以将get
声明更改为以下内容,以使其与C#6.0兼容,并且它将在VS 2015中构建:
get { return _frequency; }
虽然我从未尝试过,after a quick look around the web,但如果您更喜欢该选项,您似乎可以在Visual Studio 2015中使用C#7.0。那么理论上你应该能够编译你的代码而不做任何改动。