namespace (C# リファレンス)
更新 : 2007 年 11 月
namespace キーワードは、スコープの宣言に使用します。名前空間のスコープを宣言すると、コードを組織化したり、グローバルに一意な型を作成したりできます。
namespace SampleNamespace
{
class SampleClass { }
interface SampleInterface { }
struct SampleStruct { }
enum SampleEnum { a, b }
delegate void SampleDelegate(int i);
namespace SampleNamespace.Nested
{
class SampleClass2 { }
}
}
解説
名前空間内では、以下の型を 1 つ以上宣言できます。
C# ソース ファイル内に名前空間を明示的に宣言しているかどうかに関係なく、コンパイラは既定の名前空間を追加します。作成される無名の名前空間は、グローバル名前空間とも呼ばれ、すべてのファイルに存在します。グローバル名前空間内にある識別子は、名前付き名前空間で利用できます。
名前空間は、暗黙的にパブリックにアクセスされます。この属性は変更できません。名前空間内の要素に割り当てることができるアクセス修飾子については、「アクセス修飾子 (C# リファレンス)」を参照してください。
名前空間は、2 つ以上の宣言で定義できます。たとえば、次の例では、MyCompany 名前空間の一部として 2 つのクラスを定義しています。
namespace MyCompany.Proj1
{
class MyClass
{
}
}
namespace MyCompany.Proj1
{
class MyClass1
{
}
}
使用例
入れ子になった名前空間で静的なメソッドを呼び出す方法の例を次に示します。
namespace SomeNameSpace
{
public class MyClass
{
static void Main()
{
Nested.NestedNameSpaceClass.SayHello();
}
}
// a nested namespace
namespace Nested
{
public class NestedNameSpaceClass
{
public static void SayHello()
{
Console.WriteLine("Hello");
}
}
}
}
// Output: Hello
参照項目
名前空間の使用方法の詳細については、次のトピックを参照してください。
C# 言語仕様
詳細については、「C# 言語仕様」の次のセクションを参照してください。
3.4.1 名前空間のメンバ
3.8 名前空間と型の名前
9 名前空間