Condividi tramite


Spazi dei nomi (Visual C# Express)

Aggiornamento: novembre 2007

Gli spazi dei nomi consentono di organizzare i vari tipi presenti in un programma C#. Dal punto di vista concettuale, sono pertanto simili a una cartella in un file system di computer. Analogamente alle cartelle, gli spazi dei nomi consentono di definire nomi completi univoci per le classi. Un programma C# contiene uno o più spazi dei nomi, ciascuno definito dal programmatore o come parte di una libreria di classi scritta in precedenza.

Lo spazio dei nomi System ad esempio comprende la classe Console, che contiene metodi per leggere e scrivere nella finestra della console. Lo spazio dei nomi System contiene anche altri spazi dei nomi, come System.IO e System.Collections. In .NET Framework sono disponibili oltre ottanta spazi dei nomi, ognuno con migliaia di classi: gli spazi dei nomi vengono utilizzati per ridurre la confusione che potrebbe sorgere tra tipi e metodi con nomi simili.

Se si scrive una classe all'esterno di una dichiarazione dello spazio dei nomi, il compilatore fornirà uno spazio dei nomi predefinito per tale classe.

Collegamenti agli spazi dei nomi

Per utilizzare il metodo WriteLine, definito nella classe Console e contenuto nello spazio dei nomi System, è opportuno utilizzare una riga di codice simile alla seguente:

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

Poiché ricordarsi di anteporre System a tutti i metodi contenuti in Console può risultare fastidioso, un'alternativa rapida consiste nell'inserire la direttiva using all'inizio del file di origine C#, nel modo seguente:

using System;

Includendo using System; si stabilisce che verrà utilizzato lo spazio dei nomi System e successivamente è possibile scrivere:

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

Creazione di uno spazio dei nomi personale

Quando si utilizzano programmi di grandi dimensioni in genere si ricorre agli spazi dei nomi. L'utilizzo di spazi dei nomi personali fornisce un grado di controllo su metodi e tipi con nomi simili. Si supponga ad esempio di scrivere un'applicazione che carica dati statistici e file di immagini da un disco. È possibile creare due nuovi spazi dei nomi, denominati Images e StatisticalData. Poiché si utilizzano due spazi dei nomi separati, tutti i nomi dei metodi definiti in ciascuno spazio dei nomi saranno univoci, anche se le singole classi avranno lo stesso nome. Di conseguenza, in entrambi gli spazi dei nomi, è possibile avere una classe denominata FileHandling contenente un metodo Load. Sarà possibile specificare la classe desiderata facendo riferimento a StatisticalData.FileHandling o a Images.FileHandling

È buona norma creare una cartella distinta per ciascuno spazio dei nomi nel progetto Visual C# Express.

Esempio

Nell'esempio riportato di seguito vengono definiti due spazi dei nomi che contengono entrambi una classe denominata FileHandling. Specificando lo spazio dei nomi, è possibile distinguere velocemente le classi e i metodi in esse contenuti.

namespace StatisticalData
{
    class FileHandling
    {
        public void Load() {}  // code to load statistical data
    }
}

namespace Images 
{
    class FileHandling
    {
        public void Load() {}  // code to load an image file
    }
}

class Program
{
    static void Main()
    {
        StatisticalData.FileHandling data = new StatisticalData.FileHandling();
        data.Load();

        Images.FileHandling image = new Images.FileHandling();
        image.Load();
    }
}

Vedere anche

Concetti

Nozioni di base del linguaggio C#

Classi (Visual C# Express)

Riferimenti

Spazi dei nomi (Guida per programmatori C#)