如何在没有明确编译的情况下让Visual Studio错误检查我的代码(显示波形)?

时间:2010-01-20 18:38:34

标签: c# visual-studio visual-studio-express

我偶尔使用Visual Studio(C#Express 2008)来处理一些供应商提供的C#代码。我希望让我的VS体验更像我对Eclipse的体验。我已经习惯了Eclipse处理下划线错误的方式(在java源代码中)。当我在Eclipse中的代码中出错时,它会立即加下划线,如果我修复它,下划线几乎会立即消失,或者最糟糕的是,当我保存文件时。但是在Visual Studio中,下划线仍然存在,直到我下一次构建项目。

我可以在某个地方更改设置,以便每次保存时,甚至在我打字时,VS都会构建吗?这对C#来说难以处理,因为它在某些方面比Java更复杂吗?我是否需要找人向我购买完整(非快递)版本?另外,什么是波浪线下划线功能?我担心之前可能会问过这个问题,但我不知道要搜索的神奇字词。

4 个答案:

答案 0 :(得分:17)

杰森的回答很好,但还有几点:

  

这对C#来说难以处理,因为它在某种程度上比Java更复杂吗?

是的,但那不相关。是的,在按键之间的100毫秒内对任何语言进行即时分析是一个难题。为C#做它可能比Java更难,因为它支持比Java更多的语言功能。

但是我们的IDE团队是一群非常棒的buff编码器,所以他们可以为C#做这件事。

真正的问题是C#的编译器体系结构最初并不是为实时进行这种分析而设计的; VB编译器是。因此,修复C#编译器的语义分析引擎需要相当长的时间才能使此功能可行。

我们将继续研究如何重新构建编译器,以丰富,可扩展和引人注目的方式公开越来越多的这些动态分析服务,但这需要一些时间。这是一个很大的编译器。

  

什么是波浪线下划线功能?

在编译器团队中,我们将其称为“波浪形的红色下划线功能”,或简称为“波浪线”。

我不知道营销是否有名称。如果他们这样做,它可能类似于“微软SquiggleSense .NET for Microsoft Visual Studio Suite System 2008”;他们似乎喜欢这些长篇名字,其中有两次“微软”。

答案 1 :(得分:13)

您是否拥有带SP1的Visual C#2008 Express Edition? SP1将此功能添加到Visual Studio 2008 Professional和Visual C#2008 Express Edition。

来自release notes

  

此Service Pack添加了一个新的Visual C#IDE功能,该功能提供了有关代码的更丰富的错误信息。具体来说,此功能根据您的代码显示打开文件中出现的表达式级别错误。之前仅在构建操作之后报告了这些表达式级别错误。

来自Scott Guthrie的release notes

  

C#代码编辑器现在可识别并显示以前需要显式编译识别的许多语义代码问题的红色波浪错误。例如,如果您尝试在C#代码编辑器中声明并使用未知类型,则在执行构建之前不会看到编译错误。现在使用SP1,您将立即看到实时红色波浪错误(无需显式编译):

     

alt text

答案 2 :(得分:7)

要在VS 2010中启用此选项,请使用工具>选项>文本编辑器> C#>高级>显示实时语义错误 和

VS 2010使用工具>选项>文本编辑器> C#>高级>文件打开时输入大纲模式

答案 3 :(得分:1)

要在 VS 2010 中启用此选项,请使用Tools> Options> Text Editor> C#> Advanced> Show live semantic errors