C# - 命名空间
命名空间 旨在提供一种将一组名称与另一组名称分开的方法。在一个命名空间中声明的类名不会与在另一个命名空间中声明的相同类名冲突。
定义命名空间
命名空间定义以关键字 namespace 开头 后跟命名空间名称如下 -
namespace namespace_name { // code declarations }
要调用函数或变量的命名空间启用版本,请在命名空间名称前添加如下 -
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
使用 关键字
使用 关键字表明程序正在使用给定命名空间中的名称。例如,我们正在使用 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 { // code declarations namespace namespace_name2 { // code declarations } }
您可以使用点 (.) 运算符访问嵌套命名空间的成员,如下所示 -
现场演示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 void Main(string[] args) { abc fc = new abc(); efg sc = new efg(); fc.func(); sc.func(); Console.ReadKey(); } }
当上面的代码编译并执行时,它会产生以下结果 -
Inside first_space Inside second_space
C语言