Está en la página 1de 4

https://www.ibercom.com/soporte/index.php?

_m=knowledgebase&_a=viewarticle&kbarticleid=929

Espacios de nombres en C#
Autor:

WWW Ibercom, S.L.


Creado en: 02 Oct 2007 08:03 PM

Concepto de espacio de nombres


Del mismo modo que los ficheros se organizan en directorios, los tipos de datos se organizan en espacio de nombres.

Por un lado, esto permite tenerlos ms organizados y facilita su localizacin. De hecho, as es como se halla organizada la BCL, de modo que todas las clases ms comnmente usadas en cualquier aplicacin se hallan en el espacio de nombres llamado System, las de acceso a bases de datos en System.Data, las de realizacin de operaciones de entrada/salida en System.IO, etc.

Por otro lado, los espacios de nombres tambin permiten poder usar en un mismo programa varias clases con igual nombre si pertenecen a espacios diferentes. La idea es que cada fabricante defina sus tipos dentro de un espacio de nombres propio para que as no haya conflictos si varios fabricantes definen clases con el mismo nombre y se quieren usar a la vez en un mismo programa. Obviamente para que esto funcione no han de coincidir los nombres los espacios de cada fabricante, y una forma de conseguirlo es dndoles el nombre de la empresa fabricante, o su nombre de dominio en Internet, etc.

Definicin de espacios de nombres

Page 1/4 Soporte OnLine

https://www.ibercom.com/soporte/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=929

Para definir un espacio de nombres se utiliza la siguiente sintaxis:

namespace <nombreEspacio> { <tipos> }

Los as definidos pasarn a considerase miembros del espacio de nombres llamado . Como veremos ms adelante, aparte de clases estos tipos pueden ser tambin interfaces, estructuras, tipos enumerados y delegados. A continuacin se muestra un ejemplo en el que definimos una clase de nombre ClaseEjemplo perteneciente a un espacio de nombres llamado EspacioEjemplo:

namespace EspacioEjemplo { class ClaseEjemplo {} }

Page 2/4 Soporte OnLine

https://www.ibercom.com/soporte/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=929

El verdadero nombre de una clase, al que se denomina nombre completamente calificado, es el nombre que le demos al declararla prefijado por la concatenacin de todos los espacios de nombres a los que pertenece ordenados del ms externo al ms interno y seguido cada uno de ellos por un punto (carcter .) Por ejemplo, el verdadero nombre de la clase ClaseEjemplo antes definida es EspacioEjemplo.ClaseEjemplo. Si no definimos una clase dentro de una definicin de espacio de nombres -como se ha hecho en los ejemplos de temas previos- se considera que sta pertenece al llamado espacio de nombres global y su nombre completamente calificado coincidir con el identificador que tras la palabra reservada class le demos en su definicin (nombre simple)

Aparte de definiciones de tipo, tambin es posible incluir como miembros de un espacio de nombres a otros espacios de nombres. Es decir, como se muestra el siguiente ejemplo es posible anidar espacios de nombres:

namespace EspacioEjemplo { namespace EspacioEjemplo2 { class ClaseEjemplo {} } }

Ahora ClaseEjemplo tendr EspacioEjemplo.EspacioEjemplo2.ClaseEjemplo como nombre completamente calificado. En realidad es posible compactar las definiciones de espacios de nombres anidados usando esta
Page 3/4 Soporte OnLine

https://www.ibercom.com/soporte/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=929

sintaxis de calificacin completa para dar el nombre del espacio de nombres a definir. Es decir, el ltimo ejemplo es equivalente a:

namespace EspacioEjemplo.EspacioEjemplo2 { class ClaseEjemplo {} }

En ambos casos lo que se ha definido es una clase ClaseEjemplo perteneciente al espacio de nombres EspacioEjemplo2 que, a su vez, pertenece al espacio EspacioEjemplo.

Fuente: http://www.devjoker.com/

Page 4/4 Soporte OnLine

También podría gustarte