Export (0) Print
Expand All

namespace (C# Reference)

The namespace keyword is used to declare a scope. This namespace scope lets you organize code and gives you a way to create globally unique types.

namespace SampleNamespace 
{
    class SampleClass{}
    interface SampleInterface{}
    struct SampleStruct{}
    enum SampleEnum{a,b}
    delegate void SampleDelegate(int i);
    namespace SampleNamespace.Nested
    {
       class SampleClass2{}
    }
}

Within a namespace, you can declare one or more of the following types:

Whether or not you explicitly declare a namespace in a C# source file, the compiler adds a default namespace. This unnamed namespace, sometimes called the global namespace, is present in every file. Any identifier in the global namespace is available for use in a named namespace.

Namespaces implicitly have public access and this is not modifiable. For a discussion of the access modifiers you can assign to elements within a namespace, see Access Modifiers (C# Reference).

It is possible to define a namespace in two or more declarations. For example, the following example defines two classes as part of the MyCompany namespace:

// cs_namespace_keyword.cs
// compile with: /target:library
namespace MyCompany.Proj1 
{
    class MyClass 
    {
    }
}

namespace MyCompany.Proj1 
{
    class MyClass1 
    {
    }
}

The following example shows how to call a static method in a nested namespace.

// cs_namespace_keyword_2.cs
using System;
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

For more information, see the following sections in the C# Language Specification:

  • 3.4.1 Namespace members

  • 3.8 Namespace and type names

  • 9 Namespaces

Community Additions

ADD
Show:
© 2014 Microsoft