Resharper';s';启用了C#6.0功能';在VisualStudio2012工作?

Resharper';s';启用了C#6.0功能';在VisualStudio2012工作?,c#,visual-studio-2012,resharper,C#,Visual Studio 2012,Resharper,我被告知Visual Studio 2012不支持C#6.0,要编译C#6.0代码,我需要升级到Visual Studio的更新版本 但是,当我粘贴C#6.0代码时,Resharper会问我是否要启用C#6.0支持。如果我允许的话,我可以编译C#6.0代码 List<string> customers = null; string Customer; int? length = customers?.Count; C

我被告知Visual Studio 2012不支持C#6.0,要编译C#6.0代码,我需要升级到Visual Studio的更新版本

但是,当我粘贴C#6.0代码时,Resharper会问我是否要启用C#6.0支持。如果我允许的话,我可以编译C#6.0代码

        List<string> customers = null;
        string Customer;

        int? length = customers?.Count; 
        Customer = customers?[0];      
列出客户=null;
串客户;
智力?长度=客户?计数;
客户=客户?[0];
它似乎起作用了,但谁能解释一下它是如何起作用的


如果我进入项目的属性/构建/高级。。。“语言版本”设置为“默认”。如果我查看下拉列表,我最多只能看到C#5.0

根据,如果您的项目中安装了“Microsoft.Net.Compilers”NuGet软件包,它可以在VS 2012中工作。

我最好的猜测是您正在使用ReSharper构建引擎(ReSharper->Options->Tools->Build,请参阅构建引擎)

据我所知,它不适用于为auto属性指定默认值。尝试一下,也许他们已经解决了:)我可以在VisualStudio2012中构建C#6.0代码,而无需安装任何NuGet软件包——但我不明白它是如何工作的?