这是C#.NET 4.6.2中的有效语法吗

这是C#.NET 4.6.2中的有效语法吗,c#,syntax,setter,C#,Syntax,Setter,我在这类行中有30个错误….NET4.6.2是一个框架版本,而不是语言版本。要做到这一点,您必须使用C#6或更高版本。如果您使用C#6进行编译,则可以在.NET2.0项目中使用该语法 如果您使用的是Visual Studio 2015或更高版本,则您使用的是C#6或更高版本 如果您使用的是Visual Studio 2015,但仍然出现错误,那么您的代码中还有一些其他问题,您没有向我们展示 更新: 如果您使用的是VS2015,并且收到的错误表明 错误CS8026:功能“自动属性初始值设定项”在C

我在这类行中有30个错误…

.NET4.6.2是一个框架版本,而不是语言版本。要做到这一点,您必须使用C#6或更高版本。如果您使用C#6进行编译,则可以在.NET2.0项目中使用该语法

如果您使用的是Visual Studio 2015或更高版本,则您使用的是C#6或更高版本

如果您使用的是Visual Studio 2015,但仍然出现错误,那么您的代码中还有一些其他问题,您没有向我们展示

更新:

如果您使用的是VS2015,并且收到的错误表明

错误CS8026:功能“自动属性初始值设定项”在C#5中不可用。请使用语言版本6或更高版本

这意味着在项目属性->构建->高级屏幕中,您可以手动将语言版本设置为5或更低,而不是默认值


将其设置回默认值将解决此问题。

您使用的语法是自动属性初始值设定项

它与.NET版本无关。它是
C#6.0
中的一种语言功能

你需要的是使这项工作

如果您不能支持
C#6.0
,您可以使用旧方法:

public class MyClass
{

    public string DeviceCommands { get; set; } = "DeviceCommands";
}

此语法在C#6中有效,您可以在许多.net目标中编译它,4.6是将C#6添加到VS2013的其中一种方法-我正在使用VS2013,而.net 4.6.2是在项目设置中设置的-我现在看到,在以前的项目版本中它正在编译,但现在它不是…并且找不到任何明显的原因…“我正在使用VS2013…”这是您的问题。您使用的是C#5,因为您使用的是VS2013,您需要在VS2015中打开项目才能编译它。
public class MyClass
{
    public string DeviceCommands { get; set; };

    public MyClass()
    {
        DeviceCommands = "DeviceCommands";
    }
}