namespace (Справочник по C#)namespace (C# Reference)

Ключевое слово namespace используется для объявления области действия, которая содержит набор связанных объектов.The namespace keyword is used to declare a scope that contains a set of related objects. Пространство имен можно использовать для организации элементов кода и для создания глобально уникальных типов.You can use a namespace to organize code elements and to create globally unique types.

namespace SampleNamespace
{
    class SampleClass { }

    interface ISampleInterface { }

    struct SampleStruct { }

    enum SampleEnum { a, b }

    delegate void SampleDelegate(int i);

    namespace Nested
    {
        class SampleClass2 { }
    }
}

ПримечанияRemarks

В пространстве имен можно объявить ноль или больше следующих типов:Within a namespace, you can declare zero or more of the following types:

Независимо от того, было ли пространство имен объявлено явным образом в исходном файле на языке C#, компилятор добавляет пространство имен по умолчанию.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.

Пространство имен можно определить в двух или нескольких объявлениях.It is possible to define a namespace in two or more declarations. Например, в следующем примере два класса определяются в качестве части пространства имен MyCompany: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 about using namespaces, see the following topics:

Спецификация языка C#C# language specification

Дополнительные сведения см. в спецификации языка C#.For more information, see the C# Language Specification. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.The language specification is the definitive source for C# syntax and usage.

См. такжеSee also