代码之家  ›  专栏  ›  技术社区  ›  Todd Stout

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

  •  6
  • Todd Stout  · 技术社区  · 15 年前

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

    1 回复  |  直到 15 年前
        1
  •  14
  •   Robert Harvey    8 年前

    C#和VB之间的差距已经有一段时间了。VB为你生成了很多代码。例如,在完成“If”语句后按enter键将自动在该行末尾添加“Then”(如果您将其关闭),并用“end If”部分将其关闭。在C#中,由您添加开始和结束{}花括号。

    VB早在C#之前就有了后台编译。事实上,这是使用ReSharper的主要吸引因素之一,它提供了这样的功能。然而,从VS2008/.NET3.5SP1开始,所有这些都发生了变化。你可以阅读Scott Gu的帖子 here ,但我将粘贴相关部分:

    “C#代码编辑器现在可以识别和 显示多个对象的红色扭曲错误 需要显式编译才能 识别例如,如果您尝试 在中声明并使用未知类型 C#代码编辑器今天你不会看到 编译错误,直到生成。 立即出现扭曲错误(否 需要显式编译。“

    这并没有完全解决技术问题,但是开发团队是不同的,不一定做同样的事情。换句话说,不太可能有一个共同的方法。 This blog post VB团队的一位技术负责人的摘录支持这一点:

    背景汇编是最重要的 VB中的一个特性,它为您提供 键入时的完整错误集。 VB和C#注意这一点,但仅限于VB 开发人员可能没有意识到其他 像C#这样的语言并不总是给人留下深刻印象 您可以100%准确地感知智能和 不要总是把所有的东西都给你 是因为他们的智能感知引擎 是独立的、按比例缩小的编译器 从中编译整个项目 从VisualStudio开始到结束 在任务列表中填充完整的 准确的错误并允许我们 给你完全准确的答案 智能感知。

    最后一个注意事项是 recent Channel9 interview 与C#/VB/F#团队的项目经理Luca Bolognese一起,他强调了这些语言将不再偏离不同的方向,并将开始分享它们的相似之处。看来未来会有伟大的事情发生!