Usar espacios de nombres en VB.NET

La forma más común en que la mayoría de los espacios de nombres VB.NET son utilizados programadores es decirle al compilador qué bibliotecas de .NET Framework son necesarias para un programa en particular. Cuando elige una "plantilla" para su proyecto (como "Aplicación de formularios Windows Forms") una de las cosas que está eligiendo es el conjunto específico de espacios de nombres a los que se hará referencia automáticamente en su proyecto. Esto hace que el código en esos espacios de nombres esté disponible para su programa.

Por ejemplo, algunos de los espacios de nombres y los archivos reales en los que se encuentran para una aplicación de formularios Windows Forms son:

Sistema> en System.dll
Sistema. Datos> en el sistema. Data.dll
Sistema. Despliegue> Sistema. Deployment.dll
Sistema. Dibujo> Sistema. Drawing.dll
Sistema. Windows Formularios> Sistema. Windows Forms.dll

Puede ver (y cambiar) los espacios de nombres y referencias para su proyecto en las propiedades del proyecto debajo de Referencias lengüeta.

instagram viewer

Esta forma de pensar sobre los espacios de nombres hace que parezcan exactamente lo mismo que la "biblioteca de códigos", pero eso es solo una parte de la idea. El beneficio real de los espacios de nombres es la organización.

La mayoría de nosotros no tendremos la oportunidad de establecer una nueva jerarquía de espacio de nombres porque generalmente solo se hace una vez 'al principio' para una biblioteca de códigos grande y complicada. Pero, aquí, aprenderá cómo interpretar los espacios de nombres que se le pedirá que use en muchas organizaciones.

¿Qué hacen los espacios de nombres?

Los espacios de nombres permiten organizar las decenas de miles de objetos de .NET Framework y todos los objetos que los programadores de VB crean también en proyectos, para que no entren en conflicto.

Por ejemplo, si busca .NET para un Color objeto, encuentras dos. Hay un Color objeto en ambos:

Sistema. Dibujo
Sistema. Windows Medios de comunicación

Si agrega un Importaciones declaración para ambos espacios de nombres (también puede ser necesaria una referencia para las propiedades del proyecto) ...

Sistema de Importaciones. Dibujo
Sistema de Importaciones. Windows Medios de comunicación

... entonces una declaración como ...

Dim a As Color

... se marcará como un error con la nota, "El color es ambiguo" y .NET señalará que ambos espacios de nombres contienen un objeto con ese nombre. Este tipo de error se denomina "colisión de nombres".

Esta es la verdadera razón de los "espacios de nombres" y también es la forma en que los espacios de nombres se utilizan en otras tecnologías (como XML). Los espacios de nombres permiten utilizar el mismo nombre de objeto, como Color, cuando el nombre se ajusta y aún mantiene las cosas organizadas. Podrías definir un Color objetar en su propio código y mantenerlo distinto de los de .NET (o el código de otros programadores).

Espacio de nombres MyColor
Color de clase pública
Sub color ()
' Hacer algo
End Sub
Clase final
Fin del espacio de nombres

También puedes usar el Color objeto en otro lugar de su programa como este:

Dim c As New MyColor. Color
C. Color()

Antes de entrar en algunas de las otras características, tenga en cuenta que cada proyecto está contenido en un espacio de nombres. VB.NET usa el nombre de su proyecto (WindowsApplication1 para una aplicación de formularios estándar si no la cambia) como el espacio de nombres predeterminado. Para ver esto, cree un nuevo proyecto (usamos el nombre NSProj y echa un vistazo a la herramienta Object Browser):

  1. Hacer clic aquí para mostrar la ilustración
  2. Haga clic en el atrás botón en su navegador para volver

El Explorador de objetos muestra el nuevo espacio de nombres del proyecto (y los objetos definidos automáticamente en él) junto con los espacios de nombres de .NET Framework. Esta capacidad de VB.NET para hacer que sus objetos sean iguales a los objetos .NET es una de las claves del poder y la flexibilidad. Por ejemplo, esta es la razón por la cual Intellisense mostrará sus propios objetos tan pronto como los defina.

Para mejorarlo, definamos un nuevo proyecto (nombramos el nuestro NewNSProj en la misma solución (usar Archivo > Añadir > Nuevo proyecto ...) y codifique un nuevo espacio de nombres en ese proyecto. Y solo para hacerlo más divertido, pongamos el nuevo espacio de nombres en un nuevo módulo (lo nombramos NewNSMod). Y dado que un objeto debe codificarse como una clase, también agregamos un bloque de clase (denominado NewNSObj). Aquí está el código y el Explorador de soluciones para mostrar cómo encaja:

  1. Hacer clic aquí para mostrar la ilustración
  2. Haga clic en el atrás botón en su navegador para volver

Como su propio código es "igual que el código Framework", es necesario agregar una referencia a NewNSMod en NSProj usar el objeto en el espacio de nombres, aunque estén en la misma solución. Una vez hecho esto, puede declarar un objeto en NSProj basado en el método en NewNSMod. También debe "compilar" el proyecto para que exista un objeto real como referencia.

Dim o As New NewNSProj. AVBNS.NewNSMod. NewNSObj
o. AVBNSMethod ()

Eso es bastante Oscuro declaración sin embargo. Podemos acortar eso usando un Importaciones declaración con un alias.

Importa NS = NewNSProj. AVBNS.NewNSMod. NewNSObj
...
Dim o As New NS
o. AVBNSMethod ()

Al hacer clic en el botón Ejecutar, se muestra el MsgBox del espacio de nombres AVBNS, "¡Hey! ¡Funcionó!"

Cuándo y por qué usar espacios de nombres

Todo hasta ahora ha sido realmente sintaxis - el codificación reglas que debe seguir al usar espacios de nombres. Pero para aprovechar realmente, necesitas dos cosas:

  • Un requisito para la organización del espacio de nombres en primer lugar. Necesita más que un simple proyecto "Hello World" antes de que la organización de los espacios de nombres comience a dar sus frutos.
  • Un plan para usarlos.

En general, Microsoft recomienda que organice el código de su organización utilizando una combinación del nombre de su empresa con el nombre del producto.

Entonces, por ejemplo, si usted es el arquitecto jefe de software para la cirugía plástica Dr. No's Nose Knows, entonces es posible que desee organizar sus espacios de nombres como ...

DRNo
Consultante
ReadTheirWatchNChargeEm
TellEmNuthin
Cirugía
Hombre elefante
MyEyeLidsRGone

Esto es similar a la organización de .NET ...

Objeto
Sistema
Núcleo
IO
Linq
Datos
Odbc
SQL

Los espacios de nombres multinivel se logran simplemente anidando los bloques de espacios de nombres.

Espacio de nombres DRNo
Cirugía de espacio de nombres
Espacio de nombres MyEyeLidsRGone
«Código VB
Fin del espacio de nombres
Fin del espacio de nombres
Fin del espacio de nombres

o

Espacio de nombres DRNo. Cirugía. MyEyeLidsRGone
«Código VB
Fin del espacio de nombres
instagram story viewer