我目前正在使用Visual Studio 2013
,我编写了这个简单的代码:
class Program
{
private static void Main(string[] args)
{
Console.WriteLine(string error = "Hello world!");
}
}
显然这不是一个有效的C#代码,但奇怪的部分是即使我看到两个错误,代码正在编译并正常工作:
我认为migth与Roslyn
相关,因为我安装了Roslyn User Preview
和其他扩展程序,但我使用的项目模板是标准Console Application
模板。所以,为什么这样做代码正在编译,即使有三个编译器错误?我用VS 2012
尝试了这个并且它没有编译。是编译器错误,还是在下一版C#
中有效?
以下是我在VS 2012
中看到的错误列表:
但VS 2013
确实没有错误。
注意:我不确定它是否相关,但我也在使用Resharper
。
答案 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#。