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
Reference
C# KeywordsNamespace Keywords (C# Reference)
using (C# Reference)
Concepts
C# Programming GuideOther Resources
C# ReferenceFor namespace naming guidelines, see here:
http://msdn.microsoft.com/en-us/library/ms229026.aspx
Summary:
The general format for a namespace name is as follows:
<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]
For example, Microsoft.WindowsMobile.DirectX.
- 12/26/2008
- boulder_bum
- 12/26/2008
- boulder_bum