答案 0 :(得分:37)
是的,要使用C#6功能,您需要一个C#6编译器。 Visual Studio 2013没有C#6编译器。 Visual Studio 2015可以。
已经有针对Visual Studio 2013的Roslyn预发行版,但它们没有实现最终的C#6:它们实际上没有实现所有功能,它们实现的功能与最终的C#6行为不同。
答案 1 :(得分:6)
是的,您需要使用Visual Studio 2015.在VS 2013中不支持。相关链接:https://msdn.microsoft.com/en-us/library/dn986596.aspx
答案 2 :(得分:4)
您将无法在VS2013中使用C#6。编译器将无法理解您尝试使用的新C#6语法。 How can I add C# 6.0 to Visual Studio 2013?
答案 3 :(得分:4)
在VS2015之前,您可以将以下类添加到您的解决方案中,并按get name of a variable or parameter
中的建议将nameof(
的所有实例替换为NameOf.nameof(() =>
using System;
using System.Linq.Expressions;
namespace ICSharpCode.SharpZipLib
{
public class NameOf
{
public static String nameof<T>(Expression<Func<T>> name)
{
MemberExpression expressionBody = (MemberExpression)name.Body;
return expressionBody.Member.Name;
}
}
}
答案 4 :(得分:2)
如果您在Teamcity中收到此错误,请进行以下更改以构建步骤以更正它。
答案 5 :(得分:2)
安装此nuget包修复了我的项目。
Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
答案 6 :(得分:0)