代码建立在vs 2017上,但未在vs 2015中

时间:2017-10-04 08:01:36

标签: c# visual-studio-2015 syntax-error visual-studio-2017 resharper

在Visual Studio 2017(目标框架.NET 4.5,vs + resharper)上构建和测试我的解决方案之后,我使用Visual Studio 2015(相同的目标框架)在生产环境中运行它。

在这种情况下,我在尝试构建它时收到语法错误

例如:

public double Frequency
{
    get => _frequency;
    set 
    {
        if (value > 0)
            _frequency = value;
    }
}

在VS 2015中,我得到:

  

{或;预期

为什么会这样?

1 个答案:

答案 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。那么理论上你应该能够编译你的代码而不做任何改动。