C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#の名前空間(namespace)とは?定義方法と基本的な使い方を解説

名前空間とは

名前空間(namespace)とは、ある一連の名前を別の一連の名前から分離して管理するための仕組みです。大規模なプロジェクトでは、複数の開発者が同じ名前のクラスやメソッドを作成することがあり、名前の衝突(コンフリクト)が発生する可能性があります。名前空間を使うことで、こうした衝突を防ぎ、コードを論理的に整理できます。

また、.NET Framework が提供する System なども名前空間の一つであり、標準ライブラリの機能はすべて名前空間によって分類・管理されています。

名前空間の定義方法

名前空間の定義は、namespace キーワードで始まり、その後に名前空間名を続けて記述します。

namespace namespace_name {
    // コード宣言
}

このブロック内には、クラス、インターフェース、構造体、列挙型などを含めることができます。

C#での名前空間の使用例

次の例では、2つの異なる名前空間(first_spacesecond_space)に、それぞれ同じ名前のクラス namespace_cl を定義しています。名前空間で分離されているため、同じクラス名でも衝突せずに共存できる点に注目してください。

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

このように、first_space.namespace_clsecond_space.namespace_cl は、名前空間名を修飾子として付けることで明確に区別され、それぞれの func() メソッドが正しく呼び出されています。

using ディレクティブでコードを簡潔にする

毎回名前空間名を完全修飾で書くのは冗長になるため、通常はファイル先頭で using ディレクティブを宣言します。例えば using first_space; と記述すれば、以降は namespace_cl だけでクラスを参照できるようになり、コードがすっきりします。

  1. C#の動的配列とは?ArrayListを使った動的な配列の作成方法を解説

    動的配列とは、実行時にサイズを自由に拡張できる配列のことです。通常の静的配列は宣言時にサイズが固定されるため、後から要素数を変更することはできません。その点、動的配列は柔軟性が高く、多くの場面で有利になります。C#で配列を動的に作成するには、ArrayListコレクションを使用します。ArrayListは、個別にインデックスアクセスが可能なオブジェクトの順序付きコレクションを表します。動的なメモリ割り当てに対応しており、リストへの要素の追加(Add)、検索、並べ替え(Sort)なども簡単に行えます。C#で動的配列を作成するサンプルコード以下は、C#でArrayListを使って動的に配列を作成す

  2. C#のコンテキストキーワードとは?意味と一覧をわかりやすく解説

    C#のコンテキストキーワードとはC#では、コード内で使用される文脈(コンテキスト)によって特別な意味を持つ識別子が存在します。代表的な例が、プロパティのアクセサーとして使われる「get」や「set」です。このように、特定の場面でのみキーワードとして機能する語を「コンテキストキーワード」と呼びます。コンテキストキーワードは、通常の予約語(class や int など)とは異なり、常に予約されているわけではありません。そのため、変数名やメソッド名などの識別子としても自由に使用できるのが大きな特徴です。コンテキストキーワードの一覧以下は、C#で定義されている主なコンテキストキーワードの一覧です。コン