Declarar namespaces para organizar tipos
Os namespaces são usados intensamente em programações de C# de duas maneiras. Em primeiro lugar, 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 palavra-chave using
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 saber mais, confira Diretiva using.
Importante
Os modelos C# para o .NET 6 usam instruções de nível superior. Se você já tiver atualizado para o .NET 6, talvez seu aplicativo não corresponda ao código descrito neste artigo. 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.Worker
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 Diretivas de uso implícito
Em segundo lugar, declarar seus próprios namespaces pode ajudar a controlar o escopo dos nomes de classe e de 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 do identificador válido em C#.
A partir do C# 10, você pode declarar um namespace para todos os tipos definidos nesse arquivo, como mostra o exemplo a seguir:
namespace SampleNamespace;
class AnotherSampleClass
{
public void AnotherSampleMethod()
{
System.Console.WriteLine(
"SampleMethod inside SampleNamespace");
}
}
A vantagem dessa nova sintaxe é que ela é mais simples, economizando espaço horizontal e chaves. Isso facilita a leitura do seu código.
Visão geral dos namespaces
Os namespaces têm as seguintes propriedades:
- Eles organizam projetos de códigos grandes.
- Eles são delimitados com o uso do operador
.
. - A diretiva
using
elimina a necessidade de especificar o nome do namespace para cada classe. - O namespace
global
é o namespace "raiz":global::System
sempre fará referência ao namespace do .NET System.
Especificação da linguagem C#
Para saber mais, confira a seção Namespaces da Especificação da linguagem C#.