【发布时间】:2008-11-04 17:07:45
【问题描述】:
在 C# 中,一些默认名称空间(例如 System.Collections)无需使用 blah 输入即可列出。在 Visual Basic 中,它们不是您的进口商品。有没有办法强制 vb 自动导入一些默认名称空间或 VB 的工作方式与 C# 不同?
【问题讨论】:
标签: c# vb.net visual-studio
在 C# 中,一些默认名称空间(例如 System.Collections)无需使用 blah 输入即可列出。在 Visual Basic 中,它们不是您的进口商品。有没有办法强制 vb 自动导入一些默认名称空间或 VB 的工作方式与 C# 不同?
【问题讨论】:
标签: c# vb.net visual-studio
我认为 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# 中那样导入尽可能多的命名空间。
【讨论】:
我不确定你在问什么。我可以在那里看到两个潜在的问题:
对于#1,是的,你可以。假设 Visual Studio 2005 或更高版本,进入您的项目属性,然后选择“引用”选项卡。自动导入在视图底部的“导入的命名空间”下列出。
对于#2,我不知道。我从未在 Visual C# 中看到过这种行为。
【讨论】:
我不相信 Visual Studio 默认为 C# 或 VB 执行此操作。
不过,Jetbrains Resharper 插件会自动为您导入命名空间,就像 Eclipse 在您使用 CTRL+SHIFT+O 时所做的一样。
【讨论】: