C# 命名空间(Namespace)

高洛峰
高洛峰 原创
2017-02-08 13:25:59 1102浏览

定义命名空间

命名空间的定义是以关键字 namespace 开始,后跟命名空间的名称,如下所示:

namespace namespace_name { // 代码声明 }

为了调用支持命名空间版本的函数或变量,会把命名空间的名称置于前面,如下所示:

namespace_name.item_name;

下面的程序演示了命名空间的用法:

using System;namespace first_space{ class namespace_cl { public void func() { Console.WriteLine("Inside first_space"); } }}namespace second_space{ class namespace_cl { public void func() { Console.WriteLine("Inside second_space"); } }} class TestClass{ static void Main(string[] args) { first_space.namespace_cl fc =new first_space.namespace_cl(); second_space.namespace_cl sc = new second_space.namespace_cl(); fc.func(); sc.func(); Console.ReadKey(); }}

当上面的代码被编译和执行时,它会产生下列结果:

Inside first_space Inside second_space

using 关键字

using 关键字表明程序使用的是给定命名空间中的名称。例如,我们在程序中使用 System 命名空间,其中定义了类 Console。我们可以只写:

Console.WriteLine ("Hello there");

我们可以写完全限定名称,如下:

System.Console.WriteLine("Hello there");

您也可以使用 using 命名空间指令,这样在使用的时候就不用在前面加上命名空间名称。该指令告诉编译器随后的代码使用了指定命名空间中的名称。下面的代码演示了命名空间的应用。

让我们使用 using 指定重写上面的实例:

using System;using first_space;using second_space;namespace first_space{ class abc { public void func() { Console.WriteLine("Inside first_space"); } }}namespace second_space{ class efg { public void func() { Console.WriteLine("Inside second_space"); } }} class TestClass{ static void Main(string[] args) { abc fc = new abc(); efg sc = new efg(); fc.func(); sc.func(); Console.ReadKey(); }}

当上面的代码被编译和执行时,它会产生下列结果:

Inside first_space Inside second_space

嵌套命名空间

命名空间可以被嵌套,即您可以在一个命名空间内定义另一个命名空间,如下所示:

namespace namespace_name1 { // 代码声明 namespace namespace_name2 { // 代码声明 }}

您可以使用点(.)运算符访问嵌套的命名空间的成员,如下所示:

using System;using first_space;using first_space.second_space;namespace first_space{ class abc { public void func() { Console.WriteLine("Inside first_space"); } } namespace second_space { class efg { public void func() { Console.WriteLine("Inside second_space"); } } } } class TestClass{ static voidMain(string[] args) { abc fc = new abc(); efg sc = new efg(); fc.func(); sc.func(); Console.ReadKey(); }}

当上面的代码被编译和执行时,它会产生下列结果:

Inside first_space Inside second_space

更多C# 命名空间(Namespace)相关文章请关注PHP中文网!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。