& lt; img src = «https: //www.thoughtco.com/thmb/y_fPclwbzlR7XoJfShVl5y73MCg = / 768×0/filters: no_upscale (): max_bytes (15000): strip_icc ().300w, https://www.thoughtco.com/thmb/igVnBWDtfPEgLsm13Qj0W60VBMQ = / 417×0/filters: no_upscale (): max_bytes (15000): strip_icc (): format (webp)
La forma más común en que la mayoría de los programadores utilizan los espacios de nombres VB.NET es decirle al compilador qué bibliotecas .NET Framework son necesarias para un programa en particular. Cuando elige un & amp; quot; template & amp; quot; para su proyecto (como & amp; quot; Windows Forms Application & amp; quot;) una de las cosas que usted y amp; apos; re eligen 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 de Windows son:
Sistema & amp; gt; en System.dll & lt; br & gt ;
System.Data & amp; gt; en System.Data.dll & lt; br & gt ;
System.Deployment & amp; gt; System.Deployment.dll & lt; br & gt ;
System.Drawing & amp; gt; System.Drawing.dll & lt; br & gt ;
System.Windows.Forms & amp; gt; System.Windows.Forms.dll & lt; / br & gt; & lt; / br & gt; & lt; / br & gt; & lt; / br & gt;
Video destacado
Puede ver (y cambiar) los espacios de nombres y referencias para su proyecto en las propiedades del proyecto en la pestaña Referencias .
Esta forma de pensar sobre los espacios de nombres los hace parecer lo mismo que & amp; quot; code library & amp; quot; pero eso y amp; apos; s solo parte de la idea. El beneficio real de los espacios de nombres es la organización.
La mayoría de nosotros ganamos & amp; apos; t tenemos la oportunidad de establecer una nueva jerarquía de espacios de nombres porque generalmente solo se hace una vez & amp; apos; al principio & amp; apos; para una biblioteca de códigos grande y complicada. Pero, aquí, usted y amp; apos; ll learn & amp; amp; nbsp; 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 .NET Framework y todos los objetos que los programadores de VB también crean en los proyectos, para que no choquen.
Por ejemplo, si busca .NET para un objeto Color , encontrará dos. Hay un objeto Color en ambos:
& lt; pre & gt; System.Drawing & lt; br & gt ;
System.Windows.Media
& lt; / br & gt; & lt; / pre & gt ;
Si agrega una declaración de Importaciones para ambos espacios de nombres (también puede ser necesaria una referencia para las propiedades del proyecto) …
& lt; pre & gt; Sistema de importaciones. Dibujo & lt; br & gt ;
Sistema de importaciones. Windows. Medios
& lt; / br & gt; & lt; / pre & gt ;
entonces una declaración como …
… & lt; pre & gt; Dim a As Color
& lt; / pre & gt ;
se marcará como un error con la nota, & amp; quot; Color es ambiguo & amp; quot; y .NET señalará que ambos espacios de nombres contienen un objeto con ese nombre… Este tipo de error se denomina colisión & amp; quot; name.& amp; quot;
.
Esta es la verdadera razón de & amp; quot; namespaces & amp; quot; y también es la forma en que se utilizan los espacios de nombres en otras tecnologías (como XML). Los espacios de nombres permiten usar el mismo nombre de objeto, como Color , cuando el nombre se ajusta y aún mantiene las cosas organizadas. Puede definir un objeto Color en su propio código y mantenerlo distinto de los de .NET (o el código de otros programadores).
& lt; pre & gt; Namespace MyColor & lt; br & gt ;
Clase pública Color & lt; br & gt ;
Sub Color () & lt; br & gt ;
& amp; apos; Hacer algo & lt; br & gt ;
Fin Sub & lt; br & gt ;
Fin de clase & lt; br & gt ;
Fin del espacio de nombres
& lt; / br & gt; & lt; / br & gt; & lt; / br & gt; & lt; / br & gt; & lt; / br & gt; & lt; & lt; / pre & gt ;
También puede usar el objeto Color en otro lugar de su programa de esta manera:
& lt; pre & gt; Dim c como nuevo MyColor.Color & lt; br & gt ;
c.Color ()
& lt; / br & gt; & lt; / pre & gt ;
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 lo hace y lo cambia) como el espacio de nombres predeterminado. Para ver esto, cree un nuevo proyecto (usamos el nombre NSProj y consulte la herramienta Navegador de objetos):
- Haga clic en aquí para mostrar la ilustración
- Haga clic en el botón Atrás en su navegador para devolver
El navegador de objetos muestra su nuevo espacio de nombres de 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 de la potencia y la flexibilidad. Por ejemplo, esta es la razón por la cual Intellisense mostrará sus propios objetos tan pronto como los defina.
Para subir una muesca, let & amp; apos; s define un nuevo proyecto (Nombramos el nuestro NewNSProj en la misma solución (use Archivo & amp; gt; Añadir (tixagb_1 … ) y codifique un nuevo espacio de nombres en ese proyecto. Y solo para hacerlo más divertido, let & amp; apos; s coloca el nuevo espacio de nombres en un nuevo módulo (lo llamamos NewNSMod ). Y dado que un objeto debe codificarse como una clase, también agregamos un bloque de clase (llamado NewNSObj ). Aquí y amp; apos; s el código y el Explorador de soluciones para mostrar cómo encaja:
- Haga clic en aquí para mostrar la ilustración
- Haga clic en el botón Atrás en su navegador para devolver
Dado que su propio código es & amp; apos; al igual que Framework code & amp; apos ;, it & amp; apos; s necesario para agregar una referencia a NewNSMod en NSProj para usar el objeto en el espacio de nombres, aunque ellos &Apos. Una vez hecho eso, puede declarar un objeto en NSProj basado en el método en NewNSMod . También necesita & amp; quot; build & amp; quot; el proyecto para que exista un objeto real para hacer referencia.
& lt; pre & gt; Dim o como nuevo NewNSProj.AVBNS.NewNSMod.NewNSObj & lt; br & gt ;
o.AVBNSMethod ()
& lt; / br & gt; & lt; / pre & gt ;
Sin embargo, esa es una declaración bastante Dim . Podemos acortar eso mediante el uso de una declaración de Importaciones con un alias.
& lt; pre & gt; Imports NS = NewNSProj.AVBNS.NewNSMod.NewNSObj & lt; br & gt ;
& lt; br & gt ;…Dim o como nuevo NS & lt; br & gt ;
o.AVBNSMethod ()
& lt; / br & gt; & lt; / br & gt; & lt; / br & gt; & lt; / pre & gt ;
Al hacer clic en el botón Ejecutar, se muestra el MsgBox del espacio de nombres AVBNS, & amp; quot; Hey! Funcionó!& amp; quot;
Cuándo y por qué usar espacios de nombres
Todo hasta ahora ha sido solo sintaxis: las reglas de codificación que debe seguir al usar espacios de nombres. Pero para aprovechar realmente, necesita dos cosas:
- Un requisito para la organización del espacio de nombres en primer lugar. Necesita más que solo un & amp; quot; Hello World & amp; quot; proyecto 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 su código de organización y amp; apos; s utilizando una combinación del nombre de su empresa con el nombre del producto.
Entonces, por ejemplo, si usted y amp; apos; son el arquitecto jefe de software para el Dr. No & amp; apos; s Nose Knows Plastic Surgery, entonces es posible que desee organizar sus espacios de nombres como …
& lt; pre & gt; DRNo & lt; br & gt ;
Consultoría & lt; br & gt ;
Leer TheirWatchNChargeEm & lt; br & gt ;
TellEmNuthin & lt; br & gt ;
Cirugía & lt; br & gt ;
ElephantMan & lt; br & gt ;
MyEyeLidsRGone
& lt; / br & gt; & lt; / br & gt; & lt; / br & gt; & lt; / br & gt; & lt; / br & gt; & lt; & lt; / pre & gt ;
Esto es similar a la organización .NET & amp; apos; s …
& lt; pre & gt; Objeto & lt; br & gt ;
Sistema & lt; br & gt ;
Core & lt; br & gt ;
IO & lt; br & gt ;
Linq & lt; br & gt ;
Datos & lt; br & gt ;
Odbc & lt; br & gt ;
Sql
& lt; / br & gt; & lt; / br & gt; & lt; / br & gt; & lt; / br & gt; & lt; / br & gt; & lt; & lt; / br & gt; & lt; / pre & gt;
Los espacios de nombres multinivel se logran simplemente anidando los bloques del espacio de nombres.
& lt; pre & gt; Namespace DRNo & lt; br & gt ;
Cirugía Namespace & lt; br & gt ;
Namespace MyEyeLidsRGone & lt; br & gt ;
& amp; apos; Código VB & lt; br & gt ;
Fin de espacio de nombres & lt; br & gt ;
Fin de espacio de nombres & lt; br & gt ;
Fin del espacio de nombres
& lt; / br & gt; & lt; / br & gt; & lt; / br & gt; & lt; / br & gt; & lt; / br & gt; & lt; & lt; / pre & gt ;
o
& lt; pre & gt; Namespace DRNo.Surgery.MyEyeLidsRGone & lt; br & gt ;
& amp; apos; Código VB & lt; br & gt ;
Fin del espacio de nombres
& lt; / br & gt; & lt; / br & gt; & lt; / pre & gt ;
& amp; # x203A; Informática