为什么C#的智能感知比VB.NET延迟?

3
在VB.NET项目中,光标离开该行后会立即突出显示错误。在C#中,我必须等待几秒钟才能看到IntelliSense突出显示错误。此外,除非您开始构建它,否则C#版本不会在“错误列表”中显示所有项目错误。实际上,它似乎在各方面的工作方式都不同。是否可能调整该行为?
我同时使用Visual Studio 2008和Visual Studio 2010。
2个回答

4
使用Visual Basic时,Visual Studio会立即编译新代码,而使用C#时,只有语法错误会直接被标记出来,在构建代码后才会出现编译错误。

4
这是因为 VB.NET 在 IDE 空闲时进行完整的后台编译,因此它始终准备好最新的信息。C# 不会这样做,而是有一个单独的进程来创建 IntelliSense 信息。
你不能真正地调整它,除非进行大量的工作或购买一些第三方工具。这是两种语言之间的差异之一,VB.NET 团队专注于某些方面,而 C# 团队则专注于其他方面。
尽管我认为你可以购买一些插件(可能是 ReSharper 和其他插件),如果你真的想要更好的 IntelliSense,则可以获得更好的广告效果。

我认为这不是完全准确的,因为ReSharper在Visual Studio内对C#进行后台编译。 - Nick Craver
ReSharper能否执行与VB.NET后台编译器相同的工作? - SharpAffair
@Nick Craver:稍微调整了我的答案,试图涵盖这一点。 - Hans Olsson
@Sphynx:我不确定它是否完全相同,因为我不使用VB,自2003年以来就没有使用过,但它可以做我想要的一切,包括即时编译警告...不过我的机器配置还算不错,所以不确定在其他硬件上是否会有些卡顿。 - Nick Craver
我一年前试用了Resharper的试用版,觉得它太慢了(不是非常慢,但足以让人感到烦恼),但那时我使用的是我的旧电脑,那时已经使用了几年,并且当时只是中档水平。 - Hans Olsson
@ho1:还要记住,与VS 2008相比,VS 2010更加轻量级/更加灵敏,并且具有更好的VM开销,因此所有插件在那里都得到了良好的性能提升。 - Nick Craver

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接