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 { }
}
}
Remarks
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 referred to as 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 in 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:
namespace MyCompany.Proj1
{
class MyClass
{
}
}
namespace MyCompany.Proj1
{
class MyClass1
{
}
}
Example
The following example shows how to call a static method in a nested namespace.
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
For more information about using namespaces, see the following topics:
C# Language Specification
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
See Also
Concepts
Reference
Namespace Keywords (C# Reference)