Partilhar via


Declarar namespaces para organizar tipos

Os namespaces são muito usados na programação em C# de duas maneiras. Primeiro, o .NET usa namespaces para organizar suas muitas classes, da seguinte maneira:

System.Console.WriteLine("Hello World!");

System é um namespace e Console é uma classe nesse namespace. A using palavra-chave pode ser usada para que o nome completo não seja necessário, como no exemplo a seguir:

using System;
Console.WriteLine("Hello World!");

Para obter mais informações, consulte a Diretiva de uso.

Importante

Os modelos C# para .NET 6 usam instruções de nível superior. Seu aplicativo pode não corresponder ao código neste artigo, se você já tiver atualizado para o .NET 6. Para obter mais informações, consulte o artigo sobre Novos modelos C# geram instruções de nível superior

O SDK do .NET 6 também adiciona um conjunto de diretivas implícitas global using para projetos que usam os seguintes SDKs:

  • Microsoft.NET.Sdk
  • Microsoft.NET.Sdk.Web
  • Microsoft.NET.Sdk.Trabalhador

Essas diretivas implícitas global using incluem os namespaces mais comuns para o tipo de projeto.

Para obter mais informações, consulte o artigo sobre Uso implícito de diretivas

Em segundo lugar, declarar seus próprios namespaces pode ajudá-lo a controlar o escopo de nomes de classe e método em projetos de programação maiores. Use a palavra-chave namespace para declarar um namespace, como no exemplo a seguir:

namespace SampleNamespace
{
    class SampleClass
    {
        public void SampleMethod()
        {
            System.Console.WriteLine(
                "SampleMethod inside SampleNamespace");
        }
    }
}

O nome do namespace deve ser um nome de identificador C# válido.

A partir do C# 10, você pode declarar um namespace para todos os tipos definidos nesse arquivo, conforme mostrado no exemplo a seguir:

namespace SampleNamespace;

class AnotherSampleClass
{
    public void AnotherSampleMethod()
    {
        System.Console.WriteLine(
            "SampleMethod inside SampleNamespace");
    }
}

A vantagem desta nova sintaxe é que é mais simples, poupando espaço horizontal e chaves. Isso torna seu código mais fácil de ler.

Visão geral dos namespaces

Os namespaces têm as seguintes propriedades:

  • Eles organizam grandes projetos de código.
  • Eles são delimitados usando o . operador.
  • A using diretiva evita o requisito de especificar o nome do namespace para cada classe.
  • O global namespace é o namespace "raiz": global::System sempre se referirá ao namespace .NET System .

Especificação da linguagem C#

Para obter mais informações, consulte a seção Namespaces da especificação da linguagem C#.