namespace (Referência de C#)namespace (C# Reference)

A palavra-chave namespace é usada para declarar um escopo que contém um conjunto de objetos relacionados.The namespace keyword is used to declare a scope that contains a set of related objects. Você pode usar um namespace para organizar elementos de código e criar tipos globalmente exclusivos.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 { }
    }
}

ComentáriosRemarks

Dentro de um namespace, é possível declarar zero ou mais dos seguintes tipos:Within a namespace, you can declare zero or more of the following types:

Quer você declare explicitamente ou não um namespace em um arquivo de origem C#, o compilador adiciona um namespace padrão.Whether or not you explicitly declare a namespace in a C# source file, the compiler adds a default namespace. Este namespace sem nome, às vezes chamado de namespace global, está presente em todos os arquivos.This unnamed namespace, sometimes referred to as the global namespace, is present in every file. Qualquer identificador no namespace global está disponível para uso em um namespace nomeado.Any identifier in the global namespace is available for use in a named namespace.

Os namespaces implicitamente têm acesso público e não isso é modificável.Namespaces implicitly have public access and this is not modifiable. Para uma discussão sobre os modificadores de acesso que você pode atribuir a elementos em um namespace, consulte Modificadores de acesso.For a discussion of the access modifiers you can assign to elements in a namespace, see Access Modifiers.

É possível definir um namespace em duas ou mais declarações.It is possible to define a namespace in two or more declarations. Por exemplo, o exemplo a seguir define duas classes como parte do namespace 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
    {
    }
}

ExemploExample

O exemplo a seguir mostra como chamar um método estático em um namespace aninhado.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

Especificação da linguagem C#C# language specification

Para saber mais, confira a seção Namespaces da Especificação da linguagem C#.For more information, see the Namespaces section of the C# language specification.

Consulte tambémSee also