Espacios de nombres (Visual C# Express)

Actualización: noviembre 2007

Los espacios de nombres son una manera de organizar los distintos tipos que aparecen en un programa en C#. Conceptualmente es similar a una carpeta en un sistema de archivo del equipo. Al igual que las carpetas, los espacios de nombres permiten a las clases tener un nombre completo único. Un programa en C# contiene uno o más espacios de nombres, que quedan definidos por el programador o como parte de una biblioteca de clases previamente escrita.

Por ejemplo, el espacio de nombres System incluye la clase Console, una clase que contiene los métodos para leer y escribir en la ventana de la consola. El espacio de nombres System también contiene múltiples espacios de nombres diferentes, como System.IO y System.Collections. Sólo .NET Framework tiene más de ochenta espacios de nombres, cada uno con miles de clases: los espacios de nombres se utilizan para minimizar la confusión que se podría producir entre tipos y métodos con nombres parecidos.

Si escribe una clase fuera de una declaración de espacio de nombres, el compilador proporcionará un espacio de nombres predeterminado para esa clase.

Accesos directos a espacios de nombres

Para utilizar el método WriteLine, definido en la clase Console contenida en el espacio de nombres System, utilice una línea de código como ésta:

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

Rápidamente se hace muy pesado el no olvidarse de preceder con System todos los métodos contenidos en Console, por lo que insertar la directiva using en el inicio del archivo de código fuente de C#, resulta una forma rápida y útil:

using System;

La inclusión de using System; hace que no sea necesario incluir el espacio de nombres System y, por tanto, puede escribir únicamente lo siguiente:

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

Crear su propio espacio de nombres

Es común utilizar espacios de nombres cuando se trabaja en programas grandes. Utilizar espacios de nombres propios proporciona un grado de control sobre los métodos y tipos con nombres parecidos. Por ejemplo, suponga que está escribiendo una aplicación que carga datos estadísticos y archivos de imagen de un disco. Podría crear dos nuevos espacios de nombres, uno denominado Images y otro denominado StatisticalData. Si utiliza dos espacios de nombres separados, todos los nombres de los métodos definidos en cada espacio de nombres serán únicos, aun cuando las clases individuales tengan el mismo nombre. Esto significa que podría tener una clase denominada FileHandling en ambos espacios de nombres, y ambos contendrían un método denominado Load. La clase deseada se especificaría haciendo referencia a StatisticalData.FileHandling o Images.FileHandling

Una práctica recomendada es crear una carpeta independiente para cada espacio de nombres en el proyecto de Visual C# Express.

Ejemplo

El siguiente ejemplo define dos espacios de nombres, cada uno con una clase denominada FileHandling. Al especificar el espacio de nombres, se hace posible diferenciar rápidamente entre las clases y los métodos que contienen.

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();
    }
}

Vea también

Conceptos

Manual del lenguaje C#

Clases (Visual C# Express)

Referencia

Espacios de nombres (Guía de programación de C#)