时间:2021-05-19
命名空间的设计目的是提供一种让一组名称与其他名称分隔开的方式。在一个命名空间中声明的类的名称与另一个命名空间中声明的相同的类的名称不冲突。
我们举一个计算机系统中的例子,一个文件夹(目录)中可以包含多个文件夹,每个文件夹中不能有相同的文件名,但不同文件夹中的文件可以重名。
定义命名空间
命名空间的定义是以关键字 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 SomeNameSpace;using SomeNameSpace.Nested;namespace SomeNameSpace{ public class MyClass { static void Main() { Console.WriteLine("In SomeNameSpace"); Nested.NestedNameSpaceClass.SayHello(); } } // 内嵌命名空间 namespace Nested { public class NestedNameSpaceClass { public static void SayHello() { Console.WriteLine("In Nested"); } } }}当上面的代码被编译和执行时,它会产生下列结果:
In SomeNameSpace
In Nested
以上就是C# 命名空间(Namespace)相关知识总结的详细内容,更多关于C# 命名空间(Namespace)的资料请关注其它相关文章!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
namespace即“命名空间”,也称“名称空间”、”名字空间”。JavaScript不像C#或Java,有专门的namespace和package语法支持,当
PHP的命名空间(namespace)是PHP5.3中加入最重要的一个新特性,这个概念在C#中已经很早就有了,php中的namespace其实和c#的概念是一样
namespace命名空间是C++中一个非常重要的概念,本文实例展示了namespace的相关语法,供大家参考。具体如下:本段测试代码包括如下内容:(1)如何访
一:命名空间里的namespace关键字和__NAMESPACE__常量的运用PHP支持两种抽象的访问当前命名空间内部元素的方法,__NAMESPACE__魔术
命名空间是C++非常重要的概念,本文就以实例形式对其进行深入分析,具体内容如下:通常来说,在C++中,命名空间(namespace)的目的是为了防止名字冲突。每