我花了一些时间来理解我将要描述的问题,所以如果描述混乱,请告诉我......
我有一个名为“cProp”的对象,它定义了许多子类。要在项目的其他文件中引用这些类,我必须做类似......
的操作Dim cp = New cProp.InflationRow()
我明白为什么会这样;由于InflationRow在cProp的“内部”,我需要告诉它在哪里找到它。细
但是,这当然变得单调乏味,所以有时候你想修复它......
Imports cProp
为什么不起作用?为什么我要......
Imports ProjectName.cProp
您可能想知道为什么我关心,但这些文件在许多具有不同名称的项目中使用。因此,如果我使用Imports,我必须在一堆地方更改项目名称。我知道Namespace可能是我想要的解决方案,对吗?
我的困惑源于这样一个事实:编译器可以很好地找出我在代码中指的是哪个cProp(这是唯一的一个),为什么不在Imports?我想我在这里缺少一些基本的东西。
答案 0 :(得分:0)
这是因为您的项目有一个根命名空间 - 您可以在项目属性中看到这一点。您可以在项目属性中删除它 - 这将允许您只使用其他项目中的类名。但是,名称空间是组织类的好方法。在VB中,项目默认具有根命名空间,您无法在代码文件中看到它。
在您的项目中,由于它似乎都在同一个根命名空间内,因此您不必使用根命名空间限定根命名空间中的代码。 "进口"语句不在命名空间内(只有类型可以在命名空间内) - 这就是为什么你必须在那里提供完整的资格。