位置:首頁 > 高級語言 > C#教學 > C#命名空間

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

using 關鍵字

在using關鍵字指出該程序正在使用給定的命名空間中的名稱。例如,我們正在使用程序System命名空間。類Console被定義在那裡。我們隻是寫:

Console.WriteLine ("Hello there");

我們可以這樣寫完全限定名稱為:

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

也可避免命名空間使用使用namespace指令的前綴。這個指令告訴後續代碼利用名指定的命名空間中的編譯器。因此,命名空間隱含了下麵的代碼:

讓我們改前麵的例子,使用指令:

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