在安装Roslyn之后,为什么我的IDE会抱怨新语法?

时间:2014-04-09 21:28:02

标签: c# compiler-errors visual-studio-2013 resharper roslyn

我目前正在使用Visual Studio 2013,我编写了这个简单的代码:

class Program
{
    private static void Main(string[] args)
    {
        Console.WriteLine(string error = "Hello world!");
    }
}

显然这不是一个有效的C#代码,但奇怪的部分是即使我看到两个错误,代码正在编译并正常工作:

enter image description here

我认为migth与Roslyn相关,因为我安装了Roslyn User Preview和其他扩展程序,但我使用的项目模板是标准Console Application模板。所以,为什么这样做代码正在编译,即使有三个编译器错误?我用VS 2012尝试了这个并且它没有编译。是编译器错误,还是在下一版C#中有效?

以下是我在VS 2012中看到的错误列表:

enter image description here

VS 2013确实没有错误。

注意:我不确定它是否相关,但我也在使用Resharper

2 个答案:

答案 0 :(得分:10)

欢迎来到未来!这些"声明表达式"正在考虑下一个版本的C#,如果你正在使用Roslyn预览版,你可以提前试用它们。

答案 1 :(得分:7)

在VS 2013中使用Roslyn但没有ReSharper,代码编译得很好,我没有看到任何错误或波浪形。

这是预期的行为,因为当前的Roslyn预览支持此提议的C#6.0功能。

如果我启用ReSharper,我会开始看到波形,但错误列表窗口中没有错误,代码仍然编译正常。

这也是 预期的行为,因为当前版本的R#对C#6.0功能没有任何支持(为什么会这样?)。

所以,你看到来自R#的波浪形,但VS可以正常使用代码。

如果您想尝试推荐的C#6.0功能,我建议您temporarily disable R#