Declaración de espacios de nombres para organizar los tipos

Los espacios de nombres se usan mucho en programación de C# de dos maneras. En primer lugar, .NET usa espacios de nombres para organizar sus clases de la siguiente manera:

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

System es un espacio de nombres y Console es una clase de ese espacio de nombres. La palabra clave using se puede usar para que el nombre completo no sea necesario, como en el ejemplo siguiente:

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

Para más información, vea using (Directiva).

Importante

Las plantillas de C# para .NET 6 usan instrucciones de nivel superior. Es posible que la aplicación no coincida con el código de este artículo si ya ha actualizado a .NET 6. Para obtener más información, consulte el artículo Las nuevas plantillas de C# generan instrucciones de nivel superior.

El SDK de .NET 6 también agrega un conjunto de directivas implícitasglobal using para proyectos que usan los SDK siguientes:

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

Estas directivas de global using implícitas incluyen los espacios de nombres más comunes para el tipo de proyecto.

En segundo lugar, declarar sus propios espacios de nombres puede ayudarle a controlar el ámbito de nombres de clase y método en proyectos de programación grandes. Use la palabra clave namespace para declarar un espacio de nombres, como en el ejemplo siguiente:

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

El nombre del espacio de nombres debe ser un nombre de identificador de C# válido.

A partir de C# 10, puede declarar un espacio de nombres para todos los tipos definidos en ese archivo, como se muestra en el ejemplo siguiente:

namespace SampleNamespace;

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

La ventaja de esta nueva sintaxis es que es más sencilla, lo que ahorra espacio horizontal y llaves. Esto facilita la lectura del código.

Información general sobre los espacios de nombres

Los espacios de nombres tienen las propiedades siguientes:

  • Organizan proyectos de código de gran tamaño.
  • Se delimitan mediante el operador . .
  • La directiva using obvia la necesidad de especificar el nombre del espacio de nombres para cada clase.
  • El espacio de nombres global es el espacio de nombres "raíz": global::System siempre hará referencia al espacio de nombres System de .NET.

Especificación del lenguaje C#

Para más información, vea la sección Espacio de nombres de la Especificación del lenguaje C#.