C #: espacios de nombres
UNA namespaceestá diseñado para proporcionar una forma de mantener un conjunto de nombres separado de otro. Los nombres de clase declarados en un espacio de nombres no entran en conflicto con los mismos nombres de clase declarados en otro.
Definición de un espacio de nombres
Una definición de espacio de nombres comienza con la palabra clave namespace seguido del nombre del espacio de nombres de la siguiente manera:
namespace namespace_name {
// code declarations
}
Para llamar a la versión habilitada para el espacio de nombres de una función o variable, anteponga el nombre del espacio de nombres de la siguiente manera:
namespace_name.item_name;
El siguiente programa demuestra el uso de espacios de nombres:
using System;
namespace first_space {
class namespace_cl {
public void func() {
Console.WriteLine("Inside first_space");
}
}
}
namespace second_space {
class namespace_cl {
public void func() {
Console.WriteLine("Inside second_space");
}
}
}
class TestClass {
static void Main(string[] args) {
first_space.namespace_cl fc = new first_space.namespace_cl();
second_space.namespace_cl sc = new second_space.namespace_cl();
fc.func();
sc.func();
Console.ReadKey();
}
}
Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:
Inside first_space
Inside second_space
La palabra clave que usa
los usingLa palabra clave indica que el programa está usando los nombres en el espacio de nombres dado. Por ejemplo, estamos usando elSystemespacio de nombres en nuestros programas. Allí se define la clase Consola. Solo escribimos -
Console.WriteLine ("Hello there");
Podríamos haber escrito el nombre completo como:
System.Console.WriteLine("Hello there");
También puede evitar anteponer los espacios de nombres con el usingdirectiva de espacio de nombres. Esta directiva le dice al compilador que el código subsiguiente utiliza nombres en el espacio de nombres especificado. Por lo tanto, el espacio de nombres está implícito para el siguiente código:
Reescribamos nuestro ejemplo anterior, con la directiva using -
using System;
using first_space;
using second_space;
namespace first_space {
class abc {
public void func() {
Console.WriteLine("Inside first_space");
}
}
}
namespace second_space {
class efg {
public void func() {
Console.WriteLine("Inside second_space");
}
}
}
class TestClass {
static void Main(string[] args) {
abc fc = new abc();
efg sc = new efg();
fc.func();
sc.func();
Console.ReadKey();
}
}
Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:
Inside first_space
Inside second_space
Espacios de nombres anidados
Puede definir un espacio de nombres dentro de otro espacio de nombres de la siguiente manera:
namespace namespace_name1 {
// code declarations
namespace namespace_name2 {
// code declarations
}
}
Puede acceder a los miembros del espacio de nombres anidado mediante el operador de punto (.) De la siguiente manera:
using System;
using first_space;
using first_space.second_space;
namespace first_space {
class abc {
public void func() {
Console.WriteLine("Inside first_space");
}
}
namespace second_space {
class efg {
public void func() {
Console.WriteLine("Inside second_space");
}
}
}
}
class TestClass {
static void Main(string[] args) {
abc fc = new abc();
efg sc = new efg();
fc.func();
sc.func();
Console.ReadKey();
}
}
Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:
Inside first_space
Inside second_space