C# 名前空間
名前空間は、名前のグループを他の名前から分離する方法を提供するように設計されています。ある名前空間で宣言されたクラスの名前は、別の名前空間で宣言された同じクラスの名前と競合しません。
名前空間を定義する
以下に示すように、名前空間の定義はキーワード 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 namespace ディレクティブを使用することもできるため、使用時に名前空間名をその前に追加する必要はありません。このディレクティブは、後続のコードで指定された名前空間の名前を使用することをコンパイラーに指示します。次のコードは、名前空間の適用を遅延させます。
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
ネストされた名前空間
名前空間はネストできます。つまり、1 つの名前空間を定義できます。
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 void Main(string[] args) { abc fc = new abc(); efg sc = new efg(); fc.func(); sc.func(); Console.ReadKey(); } }
上記のコードがコンパイルされると、実行されると、次の結果が生成されます。上記は [c# チュートリアル] C# 名前空間 (Namespace) の内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。