本人很喜欢VB.NET,在工作中也很喜欢总结关于VB.NET名空间的经验教训,下面就这个问题来详细说说吧。在一个。VB文件中可以包含多个类、模块以及其它代码。接下来的设计过程实际上跟VB的差不多,我们可以手动增加其它的代码到这个文件中去。这里值得指出的是一旦在IDE创建类的时候它就会增加一个新的文件到工程中去。
在下面的例子中,代码包含了一个关键字End Class.这是一个新的关键字,使用它的目的是为了在一个源文件中包含多个类,这点正是VB.NET与VB6在创建类区别的精髓所在。每当我们在 VB.NET中创建类的时候,我们只是简单地将所有的的代码包含在Class和End Class 之间。例子代码如下:
Public Class TheClass
Public Sub MyWorks()
End Sub
End Class
另外在一个特定的源文件(后缀名为。VB)中,我们可以使用多个Class…End Class块。
类与名空间
VB.NET名空间的概念是。NET环境重要内容,因为它可以提供哪个类可以被组成逻辑组的机理,并且使得这些类更容易的搜索以及管理。在VB.NET名空间是使用块结构来声明的。例如:
Namespace MyNamespace
Public Class MyClass
End Class
End Namespace
在Namespace…End Namespace块之间声明的任何类、结构等等将可以使用那个名空间被寻址。在本例子中,我们的类可以使用这个名空间来引用,这样定义一个变量就变成了:
Private obj As MyNamespace.MyClass
因为VB.NET名空间是使用块结构来创建的,所以在单一的源文件中就不仅可以包含多个类,而且可以包含多个名空间。同样,在一个相同名空间的类可以被创建在分隔的文件中。换句话说,在一个VB.NET工程中,我们可以使用在不同源文件中相同的名空间,而所有在这些名空间中的类将是那个相同名空间的一部分。
为了更好地理解,下面再给出一个源文件:
Namespace MyNamespace
Public Class MyClass
End Class
End Namespace
我们在工程中还有以下一个独立的源文件,其代码如下:
Namespace MyNamespace
Public Class MyOtherClass
End Class
End Namespace
以上的两短段代码是为了说明在同一个VB.NET名空间MyNamespace中有两个类:MyClass和MyOtherClass.这里还需指出,在缺省状态下,VB.NET工程有一个根名空间(root namespace),它实际上是工程属性的一部分。这个根VB.NET名空间使用了与工程相同的名字。所以当我们使用名空间块结构的时候,我们实际上是增加到根名空间上去。因此,如果你的工程命名为MyProject,那么我们可以这样来定义一个变量:
Private obj As MyProject.MyNamespace.MyClass
当然你也可以改变根名空间,具体操作可以使用菜单选项:Project(工程)->Properties(属性)。