Nota
L'accés a aquesta pàgina requereix autorització. Pots provar d'iniciar sessió o canviar de directori.
L'accés a aquesta pàgina requereix autorització. Pots provar de canviar directoris.
Palabra clave
Use la namespace palabra clave para declarar un ámbito que contenga un conjunto de objetos relacionados. Use un espacio de nombres para organizar los elementos de código y crear tipos únicos globales.
namespace SampleNamespace
{
class SampleClass { }
interface ISampleInterface { }
struct SampleStruct { }
enum SampleEnum { a, b }
delegate void SampleDelegate(int i);
namespace Nested
{
class SampleClass2 { }
}
}
Las declaraciones de espacio de nombres con ámbito de archivo permiten declarar que todos los tipos de un archivo están en un único espacio de nombres. El ejemplo siguiente es similar al ejemplo anterior, pero usa una declaración de espacio de nombres con ámbito de archivo:
using System;
namespace SampleFileScopedNamespace;
class SampleClass { }
interface ISampleInterface { }
struct SampleStruct { }
enum SampleEnum { a, b }
delegate void SampleDelegate(int i);
La documentación de referencia del lenguaje C# cubre la versión más reciente publicada del lenguaje C#. También contiene documentación inicial sobre las características de las versiones preliminares públicas de la próxima versión del lenguaje.
La documentación identifica cualquier característica introducida por primera vez en las últimas tres versiones del idioma o en las versiones preliminares públicas actuales.
Sugerencia
Para buscar cuándo se introdujo por primera vez una característica en C#, consulte el artículo sobre el historial de versiones del lenguaje C#.
Uso de instrucciones en espacios de nombres con ámbito de archivo
Cuando se utilizan espacios de nombres con ámbito de fichero, la colocación de las instrucciones using afecta a su ámbito dentro del fichero. Espacios de nombres con ámbito de archivo inferiores a la declaración de espacio de nombres tradicional equivalente que termina con un corchete de cierre al final del archivo. Este comportamiento determina dónde using se aplican las directivas de la siguiente manera:
- Si coloca las
usinginstrucciones antes de la declaración de espacio de nombres con ámbito de archivo, se tratan como fuera del espacio de nombres y se interpretan como espacios de nombres completos. - Si coloca las
usinginstrucciones después de la declaración de espacio de nombres con ámbito de archivo, se limitan dentro del propio espacio de nombres.
Por ejemplo:
// This using is outside the namespace scope, so it applies globally
using System;
namespace SampleNamespace; // File-scoped namespace declaration
// This using is inside the namespace scope
using System.Text;
public class SampleClass
{
// Class members...
}
En el ejemplo anterior, System es accesible globalmente, mientras que System.Text solo se aplica dentro de SampleNamespace.
En el ejemplo anterior no se incluye ningún espacio de nombres anidado. Los espacios de nombres con ámbito de archivo no pueden incluir declaraciones de espacio de nombres adicionales. No se puede declarar un espacio de nombres anidado ni un segundo espacio de nombres con ámbito de archivo:
namespace SampleNamespace;
class AnotherSampleClass
{
public void AnotherSampleMethod()
{
System.Console.WriteLine(
"SampleMethod inside SampleNamespace");
}
}
namespace AnotherNamespace; // Not allowed!
namespace ANestedNamespace // Not allowed!
{
// declarations...
}
En un espacio de nombres, se pueden declarar cero o más de los siguientes tipos:
- class
- interface
- struct
- enum
- delegate
- los espacios de nombres anidados se pueden declarar excepto en declaraciones de espacio de nombres con ámbito de archivo
El compilador agrega un espacio de nombres predeterminado. Este espacio de nombres sin nombre, que a veces se denomina espacio de nombres global, está presente en todos los archivos. Contiene declaraciones no incluidas en un espacio de nombres declarado. Todos los identificadores del espacio de nombres global están disponibles para su uso en un espacio de nombres con nombre.
Los espacios de nombres tienen acceso público implícitamente. Para ver una descripción de los modificadores de acceso que se pueden asignar a los elementos de un espacio de nombres, vea Modificadores de acceso.
Es posible definir un espacio de nombres en dos o más declaraciones. Por ejemplo, en el ejemplo siguiente se definen dos clases como parte del espacio de nombres MyCompany:
namespace MyCompany.Proj1
{
class MyClass
{
}
}
namespace MyCompany.Proj1
{
class MyClass1
{
}
}
En el ejemplo siguiente se muestra cómo llamar a un método estático en un espacio de nombres anidado.
namespace SomeNameSpace
{
public class MyClass
{
static void Main()
{
Nested.NestedNameSpaceClass.SayHello();
}
}
// a nested namespace
namespace Nested
{
public class NestedNameSpaceClass
{
public static void SayHello()
{
Console.WriteLine("Hello");
}
}
}
}
// Output: Hello
Especificación del lenguaje C#
Para más información, vea la sección Espacio de nombres de la Especificación del lenguaje C#. Para obtener más información sobre las declaraciones de espacio de nombres con ámbito de archivo, consulte la especificación de características.