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#.