Condividi tramite


Dichiarare i namespace per organizzare i tipi

I namespace vengono usati frequentemente nella programmazione C# in due modi. In primo luogo, .NET usa gli spazi dei nomi per organizzare le numerose classi, come indicato di seguito:

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

System è uno spazio dei nomi e Console è una classe in quello spazio dei nomi. Si può usare la parola chiave using in modo tale che il nome completo non sia necessario, come nell'esempio seguente:

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

Per altre informazioni, vedere la Direttiva Using.

È anche possibile creare un alias per uno spazio dei nomi o un tipo usando la direttiva 'using alias'.
Negli scenari più avanzati è possibile fare riferimento a più assembly con gli stessi spazi dei nomi o gli stessi tipi usando la funzionalità extern alias.

Importante

I modelli C# per .NET 6 usano istruzioni di primo livello. L'applicazione potrebbe non corrispondere al codice in questo articolo, se è già stato eseguito l'aggiornamento a .NET 6. Per altre informazioni, vedere l'articolo sui nuovi modelli C# per generare istruzioni di primo livello

.NET 6 SDK aggiunge anche un set di direttive impliciteglobal using per i progetti che usano gli SDK seguenti:

  • Microsoft.NET.Sdk
  • Microsoft.NET.Sdk.Web
  • Microsoft.NET.Sdk.Worker

Queste direttive global using implicite includono i namespace più comuni per il tipo di progetto.

Per altre informazioni, vedere l'articolo sulle using direttive implicite

In secondo luogo, dichiarare il proprio spazio dei nomi può aiutare a controllare l'ambito dei nomi di classi e metodi nei progetti di programmazione più grandi. Usare la parola chiave namespace per dichiarare uno spazio dei nomi, come nell'esempio seguente:

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

Il nome dello spazio dei nomi deve essere un nome di identificatore C# valido.

È possibile dichiarare uno spazio dei nomi per tutti i tipi definiti nel file, come illustrato nell'esempio seguente:

namespace SampleNamespace;

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

Il vantaggio di questa nuova sintassi è che è più semplice, e fa risparmiare spazio orizzontale e parentesi graffe. In questo modo il codice risulta più semplice da leggere.

Panoramica dei namespace

I namespace hanno le proprietà riportate di seguito:

  • Consentono di organizzare progetti di codice di grandi dimensioni.
  • Vengono delimitati usando l'operatore ..
  • La direttiva using elimina la necessità di specificare il nome dello spazio dei nomi per ogni classe.
  • Lo spazio dei nomi global è lo spazio dei nomi "radice": global::System fa sempre riferimento allo spazio dei nomi .NET System.

Specifiche del linguaggio C#

Per altre informazioni, vedere la sezione Spazi dei nomi della specifica del linguaggio C#.