C#代码包含在全局名称空间中,使用namespace关键字为花括号中的代码块显示定义名称空间。
- 包含在这段代码中的项,全局名称空间的其他代码通过名称进行引用,就可以访问。
- 该名称空间外部的代码使用名称空间的名称,必须写出该名称空间的限定名称。
限定名称:包含全部的分层信息。一个名称空间的代码引用另一个名称空间中定义的名称,则必须包括该名称空间的引用。
举例:
namespace LevelOne
{
// name "NameOne" defined
//此命名空间直接使用NameOne引用
}
//code in global namespace
//全局名称空间使用LevelOne.NameOne引用这个名称
namespace LevelOne
{
//引用LevelTwo.NameTwo
namespace LevelTwo
{
//name "NameTwo" defined
}
}
//code in global namespace
//引用LevelOne.LevelTwo.NameTwo
名称是由名称空间唯一定义的。可在不同名称空间中定义相同的名称。
namespace LevelOne
{
//name NameThree defined
namespace LevelTwo
{
//name NameThree defined
}
}
//引用 LevelOne.NameThree和LevelOne.LevelTwo.NameThree
using语句的使用:
- 简化对所包含名称的访问。
举例:
namespace LevelOne
{
using LevelTwo; //引用NameTwo
namespace LevelTwo
{
//name "NameTwo" defined
}
}
- 避免不同名称空间的相同名称产生冲突,using可为名称空间提供一个别名
namespace LevelOne
{
using LT=LevelTwo;
//引用LT.NameThree
//name NameThree defined
namespace LevelTwo
{
//name NameThree defined
}
}
注意:
using语句本身不能访问另一个名称空间中的名称。除非名称空间的代码以某种方式链接到项目上,或者是大妈是在该项目的源文件中定义的,或者是在链接到该项目的其他代码中定义的,否则就不能访问其中包含的名称。另外,如果包含名称空间的代码链接到项目上,那么无论是否使用using都可以访问其中包含的名称。