【问题标题】:Visual basic auto imports namespacesVisual Basic 自动导入命名空间
【发布时间】:2008-11-04 17:07:45
【问题描述】:

在 C# 中,一些默认名称空间(例如 System.Collections)无需使用 blah 输入即可列出。在 Visual Basic 中,它们不是您的进口商品。有没有办法强制 vb 自动导入一些默认名称空间或 VB 的工作方式与 C# 不同?

【问题讨论】:

    标签: c# vb.net visual-studio


    【解决方案1】:

    我认为 John Rudy 发布的第一个项目就是您要查找的内容 - 将它们添加到项目属性中。

    然而,VB.Net 的工作方式也与 C# 不同,因为在 VB 中导入命名空间的方式与在 C# 中不同。当您在 VB 中导入命名空间时,它也会将子命名空间带入“范围内”,以某种说法。

    System 命名空间为例,它是默认导入的。因为系统命名空间是导入的,所以您不必像在 C# 中那样首先键入 System. 来引用像 IO 这样的子命名空间。所以,开箱即用,你可以在 VB 中这样说:

    If IO.File.Exists(MyFile) Then ....
    

    目前这在 C# 中是不可能的。你要么必须导入System.IO,然后只说File.Exists(),要么也列出系统命名空间:System.IO.File.Exists()

    它可能看起来不是很重要,但一段时间后你真的会习惯这个 VB 功能,而且它比你想象的更方便。我提出这一切是因为此功能的最终结果是您通常不想在 VB 中像在 C# 中那样导入尽可能多的命名空间。

    【讨论】:

      【解决方案2】:

      我不确定你在问什么。我可以在那里看到两个潜在的问题:

      1. 能否更改 VB 自动导入?
      2. 能否在 C# 中获得自动导入行为?

      对于#1,是的,你可以。假设 Visual Studio 2005 或更高版本,进入您的项目属性,然后选择“引用”选项卡。自动导入在视图底部的“导入的命名空间”下列出。

      对于#2,我不知道。我从未在 Visual C# 中看到过这种行为。

      【讨论】:

        【解决方案3】:

        我不相信 Visual Studio 默认为 C# 或 VB 执行此操作。

        不过,Jetbrains Resharper 插件会自动为您导入命名空间,就像 Eclipse 在您使用 CTRL+SHIFT+O 时所做的一样。

        【讨论】:

          猜你喜欢
          • 2010-09-16
          • 2010-12-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-11
          • 2012-02-19
          相关资源
          最近更新 更多