初识命名空间

来源:互联网 发布:俄克拉荷马大学 知乎 编辑:程序博客网 时间:2024/06/10 18:39

 

设Bill是X公司的员工,工号为123,而John是Y公司的员工,工号也是123。由于两人在不同的公司工作,可以使用相同的工号来标识而不会造成混乱,这里每个公司就表示一个独立的命名空间。如果两人在同一家公司工作,其工号就不能相同了,否则在支付工资时便会发生混乱。

      这一特点是使用命名空间的主要理由。在大型的计算机程序或文档中,往往会出现数百或数千个标识符。命名空间(或类似的方法,见“命名空间的模拟”一节)提供一隱藏區域標識符的機制。通过将逻辑上相关的标识符组织成相应的命名空间,可使整个系统更加模块化。

在编程语言中,命名空间是一种特殊的作用域,它包含了处于该作用域内的标识符,且本身也用一个标识符来表示,这样便将一系列在逻辑上相关的标识符用一个标识符组织了起来。许多现代编程语言都支持命名空间。在一些编程语言(例如C++和Python)中,命名空间本身的标识符也属于一个外层的命名空间,也即命名空间可以嵌套,构成一个命名空间树,树根则是无名的全局名空间

比如:

namespace TextHello

{

class Greeting

{

...

}

}

然后就可以在程序中用TextHello.Greeting来使用了。如果有其它人也定义了一个Greeting的类

namespace MyHello

{

class Greeting

{

...

}

}

因为命名空间的不同,两个Greeting类会正常的工作,这也让不同的部门,不同的程序员所编制的类都会在自己的命名空间内活动,让合作成为可能,越是大型的程序其命名空间会越重要(个人理解)。

在编写程序时VS会自动生成很多这样的语句,它们就是命名空间:

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

 

原创粉丝点击