3.2 名字空间
名字空间被.NET平台广泛地应用,但其不是真正的OOPS(Object Oriented Programming System,面向对象程序设计系统)特征,只是各种不同类(Classes)的一个逻辑容器。名字空间下的类名必须是唯一的,名字空间有两个用途——为类提供逻辑组织和避免歧义性。
名字空间允许类按一致性、层次性的方式进行分类。.NET框包括几百种从基类System导出的名字空间。类型可以是类、枚举、结构、代理或接口。
3.2.1 名字空间的定义
定义一个名字空间使用Namespace...End Namespace语句块。语法如下:
Namespace MyNamespace End Namespace
在该名字空间内,创建类、枚举、结构、代理、接口或其他的名字空间。名字空间也可以嵌套,也就是说B名字空间可以在A名字空间中,并且每个名字空间可以有任意数目的成员。
不必在一个文件中包括所有的代码。一个名字空间可以在多个文件甚至多个程序集中实现,这样便于多个开发人员使用同一名字空间创建一个应用程序。
当命名名字空间时,应注意以下几点。
名字空间的第一部分,直到最右边的点,是名字空间的名,如System.Net.Sockets,在最右边的点之前的System.Net是名字空间的名。
名字空间名的最后部分是类型名,如上面的Sockets就是System.Net名字空间名的类型名。
尽量与其他已经公布的名字空间区别开,保持唯一性。
推荐使用Pascal语言对名称大小写的命名规则,即首字母必须大写。
用点隔开各个部分。如System.Data.SQLClient。
在需要的地方要使用复数名。
3.2.2 引用名字空间
为了在应用程序中使用名字空间,在类文件的顶部使用Imports语句。例如,在应用程序中需要进行OLE DB数据访问,就要引用名字空间System.Data.OLE DB,语法如下:
Imports System.Data.OLE DB
在.NET中,微软发布的所有名字空间以System或Microsoft开头。以System开头的名字空间来自.NET SDK小组,而以Microsoft开头的名字空间来自Microsoft产品开发组。
下面以实例说明名字空间的创建和引用。