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");

您還可以使用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
廣告
© . All rights reserved.