VB.NET名空间介绍

来源:岁月联盟 编辑:exp 时间:2009-10-30

本人很喜欢VB.NET,在工作中也很喜欢总结关于VB.NET名空间的经验教训,下面就这个问题来详细说说吧。在一个.VB文件中可以包含多个类、模块以及其它代码。接下来的设计过程实际上跟VB的差不多,我们可以手动增加其它的代码到这个文件中去。这里值得指出的是一旦在IDE创建类的时候它就会增加一个新的文件到工程中去。

在下面的例子中,代码包含了一个关键字End Class。这是一个新的关键字,使用它的目的是为了在一个源文件中包含多个类,这点正是VB.NET与VB6在创建类区别的精髓所在。每当我们在 VB.NET中创建类的时候,我们只是简单地将所有的的代码包含在Class和End Class 之间。例子代码如下:

  1. Public Class TheClass  
  2. Public Sub MyWorks()  
  3. End Sub  
  4. End Class  

另外在一个特定的源文件(后缀名为.VB)中,我们可以使用多个Class...End Class块。

类与名空间

VB.NET名空间的概念是.NET环境重要内容,因为它可以提供哪个类可以被组成逻辑组的机理,并且使得这些类更容易的搜索以及管理。在VB.NET名空间是使用块结构来声明的。例如:

  1. Namespace MyNamespace  
  2. Public Class MyClass  
  3. End Class  
  4. End Namespace  

在Namespace...End Namespace块之间声明的任何类、结构等等将可以使用那个名空间被寻址。在本例子中,我们的类可以使用这个名空间来引用,这样定义一个变量就变成了:

  1. Private obj As MyNamespace.MyClass 

因为VB.NET名空间是使用块结构来创建的,所以在单一的源文件中就不仅可以包含多个类,而且可以包含多个名空间。同样,在一个相同名空间的类可以被创建在分隔的文件中。换句话说,在一个VB.NET工程中,我们可以使用在不同源文件中相同的名空间,而所有在这些名空间中的类将是那个相同名空间的一部分。
为了更好地理解,下面再给出一个源文件:

  1. Namespace MyNamespace  
  2. Public Class MyClass  
  3. End Class  
  4. End Namespace 

我们在工程中还有以下一个独立的源文件,其代码如下:

  1. Namespace MyNamespace  
  2. Public Class MyOtherClass  
  3. End Class  
  4. End Namespace 

以上的两短段代码是为了说明在同一个VB.NET名空间MyNamespace中有两个类:MyClass和MyOtherClass。这里还需指出,在缺省状态下,VB.NET工程有一个根名空间(root namespace),它实际上是工程属性的一部分。这个根VB.NET名空间使用了与工程相同的名字。所以当我们使用名空间块结构的时候,我们实际上是增加到根名空间上去。因此,如果你的工程命名为MyProject,那么我们可以这样来定义一个变量:

  1. Private obj As MyProject.MyNamespace.MyClass 

当然你也可以改变根名空间,具体操作可以使用菜单选项:Project(工程)->Properties(属性)。