与 VB.NET 相比,为什么 IntelliSense 对 C# 的支持缺乏? [关闭]

2023-11-25

对我来说,为 Java 生态系统进行开发已经支付了很多年的费用。然而,几年来,我主要在 .Net 领域工作。最初,我向 .Net 世界的过渡包括编写和维护 VB.Net 代码。 VS 提供了我在使用 Eclipse/Java 组合多年后所期望的几乎所有良好的智能感知支持。最终我的雇主决定用 C# 进行新的开发。我对 C# 智能感知支持的最初印象并不出色。有时,VS 似乎没有 C# 的后台编译器,但偶尔它会做一些聪明的事情,表明那里有一些后台处理,但不足以真正以有意义的方式提高生产力。两种语言之间的智能感知支持差异是否有任何合理的技术原因?


C# 和 VB 之间的差距已经有一段时间了。 VB 为您生成大量代码。例如,如果您未添加“If”语句,则在完成“If”语句后按 Enter 键将自动在该行末尾添加“Then”,并使用“End If”部分将其关闭。在 C# 中,您可以添加起始和结束的 {} 花括号。

VB 早在 C# 之前就已经有了后台编译。事实上,这是使用提供此类功能的 ReSharper 的主要吸引力因素之一。然而,从 VS 2008 / .NET 3.5 SP1 开始,一切都发生了变化。你可以阅读 Scott Gu 的帖子here,但我会粘贴相关部分:

“C# 代码编辑器现在可以识别并 对许多人显示红色曲线错误 以前的语义代码问题 需要显式编译 确认。例如,如果您尝试 声明并使用未知类型 今天的 C# 代码编辑器您不会看到 编译错误,直到您进行构建。 现在使用 SP1,您将看到红色 立即出现波形曲线错误(无 需要显式编译)。”

使用 CodeRush 或 ReSharper 无疑会增强常见语句自动完成的体验,这会让 VB 开发人员感觉已经实现了无缝过渡。

这并不能完全解决技术问题,但开发团队不同,不一定做同样的事情。换句话说,不太可能有共同的方法。这篇博文VB 团队技术主管的摘录支持了这一点:

“后台编译”是 VB 中的功能可为您提供 您键入时的完整错误集。 来来回回的人们 VB 和 C# 会注意到这一点,但仅限 VB 开发人员可能没有意识到其他 像 C# 这样的语言并不总是能给出 你 100% 准确的 Intellisense 和 并不总是给你所有 您的代码中存在的错误。这 是因为他们的智能感知引擎 是独立的、按比例缩小的编译器 不进行完整编译 背景。另一方面,VB 编译你的整个项目 从 Visual Studio 开始到结束 闲置,让我们可以立即 完全填充任务列表 准确的错误,让我们能够 给你完全准确的 智能感知。

最后一点是最近的 Channel9 采访与 C#/VB/F# 团队的集团 PM Luca Bolognese 会面,他强调这些语言将不再朝着不同的方向偏离,并将开始分享它们的相似之处。所以看起来未来将会有美好的事情发生!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

与 VB.NET 相比,为什么 IntelliSense 对 C# 的支持缺乏? [关闭] 的相关文章

随机推荐