Visual basic自动导入命名空间

本文关键字:导入 命名空间 basic Visual | 更新日期: 2023-09-27 17:48:48

在C#中,一些默认名称空间(如System.Collections)是在不使用blah键入的情况下列出的。在visual basic中,它们不是为您导入的。有没有办法强制vb自动导入一些默认名称空间,或者vb的工作方式与C#不同?

Visual basic自动导入命名空间

我认为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名称空间:System.IO.File.Exists()

它看起来可能不是很重要,但过一段时间你就会真正习惯这个VB功能,而且它比你想象的更有用。我之所以提到这一切,是因为这个功能的最终结果是,您通常不想在VB中导入像在C#中那样多的名称空间。

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

  1. 你能更改VB的自动导入吗
  2. 你能在C#中获得自动导入行为吗

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

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

我不相信Visual Studio在C#或VB.的默认情况下会这样做

然而,Jetbrains Resharper插件将为您自动导入命名空间,就像Eclipse在使用CTRL+SHIFT+O时所做的那样。