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.

Para saber más, consulte el artículo sobre las directivas de uso implícito

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