El efecto real de la declaración de Importaciones en VB.NET es a menudo una fuente de confusión para las personas que aprenden el idioma. Y la interacción con VB.NET References genera aún más confusión. Nosotros & amp; apos; vamos a aclarar eso en este Consejo Rápido.
Aquí y amp; apos; s un breve resumen de toda la historia. Entonces nosotros & amp; apos; repasaremos los detalles.
Una referencia a un espacio de nombres VB.NET es un requisito y debe agregarse a un proyecto antes de que se puedan usar los objetos en el espacio de nombres. (Se agrega automáticamente un conjunto de referencias para las diferentes plantillas en Visual Studio o VB.NET Express. Haga clic en & amp; quot; Mostrar todos los archivos y amp; quot; in & amp; amp; nbsp; Solution Explorer para ver qué son.) Pero la declaración de importaciones no es un requisito. En cambio, es simplemente una conveniencia de codificación que permite usar nombres más cortos.
Ahora, vamos a ver un ejemplo real. Para ilustrar esta idea, nosotros & amp; apos; vamos a usar el espacio de nombres System.Data & amp; # x2014; que proporciona tecnología de datos ADO.NET.
System.Data se agrega a las aplicaciones de Windows como referencia de forma predeterminada utilizando la plantilla de aplicación VB.NET Windows Forms.
Agregar un espacio de nombres en la Colección de referencias
Agregar un nuevo espacio de nombres a la colección de Referencias en un proyecto también pone a disposición del proyecto los objetos en ese espacio de nombres. El efecto más visible de esto es que Visual Studio & amp; quot; Intellisense & amp; quot; te ayudará a encontrar los objetos en los cuadros de menú emergente.
Si intenta usar un objeto en su programa sin una Referencia, la línea de código genera un error.
La declaración de importaciones, por otro lado, nunca es necesaria. Lo único que hace es permitir que el nombre se resuelva sin estar completamente calificado. En otras palabras (énfasis agregado para mostrar las diferencias).
& lt; pre / & gt; & lt; pre & gt; Importaciones System.Data & lt; / pre & gt ;
& lt; br & gt ;
& lt; pre & gt; Formulario de clase pública1 & lt; / pre & gt ;
& lt; br & gt ;
& lt; pre & gt; & amp; amp; nbsp; & amp; amp; nbsp; & amp; amp; nbsp; Sistema de herencia. Windows.Forms.Form & lt; / pre & gt ;
& lt; br & gt ;
& lt; pre & gt; & amp; amp; nbsp; & amp; amp; nbsp; & amp; amp; nbsp; Private Sub Form1_Load ( …& lt; / pre & gt ;
& lt; br & gt ;
& lt; pre & gt; & amp; amp; nbsp; & amp; amp; nbsp; & amp; amp; nbsp; & amp; amp; nbsp; & amp; nbsp; & amp; amp; nbsp; Dim Test As OleDb.OleDbCommand & gt;
& lt; br & gt ;
& lt; pre & gt; & amp; amp; nbsp; & amp; amp; nbsp; & amp; amp; nbsp; End Sub & lt; / pre & gt ;
& lt; br & gt ;
& lt; pre & gt; Clase final & lt; / pre & gt ;
Video destacado
y
& lt; pre / & gt; & lt; pre & gt; Importaciones System.Data.OleDb & lt; / pre & gt ;
& lt; br & gt ;
& lt; pre & gt; Formulario de clase pública1 & lt; / pre & gt ;
& lt; br & gt ;
& lt; pre & gt; & amp; amp; nbsp; & amp; amp; nbsp; & amp; amp; nbsp; Sistema de herencia. Windows.Forms.Form & lt; / pre & gt ;
& lt; br & gt ;
& lt; pre & gt; & amp; amp; nbsp; & amp; amp; nbsp; & amp; amp; nbsp; Private Sub Form1_Load ( …& lt; / pre & gt ;
& lt; br & gt ;
& lt; pre & gt; & amp; amp; nbsp; & amp; amp; nbsp; & amp; amp; nbsp; & amp; amp; nbsp; & amp; nbsp; & amp; amp; nbsp; Dim Test As OleDbCommand & lt; /pre & gt;
& lt; br & gt ;
& lt; pre & gt; & amp; amp; nbsp; & amp; amp; nbsp; & amp; amp; nbsp; End Sub & lt; / pre & gt ;
& lt; br & gt ;
& lt; pre & gt; Clase final & lt; / pre & gt ;
son ambos equivalentes. Pero …
& lt; pre / & gt; & lt; pre & gt; Importaciones System.Data & lt; / pre & gt ;
& lt; br & gt ;
& lt; pre & gt; Formulario de clase pública1 & lt; / pre & gt ;
& lt; br & gt ;
& lt; pre & gt; & amp; amp; nbsp; & amp; amp; nbsp; & amp; amp; nbsp; Sistema de herencia. Windows.Forms.Form & lt; / pre & gt ;
& lt; br & gt ;
& lt; pre & gt; & amp; amp; nbsp; & amp; amp; nbsp; & amp; amp; nbsp; Private Sub Form1_Load ( …& lt; / pre & gt ;
& lt; br & gt ;
& lt; pre & gt; & amp; amp; nbsp; & amp; amp; nbsp; & amp; amp; nbsp; & amp; amp; nbsp; & amp; nbsp; & amp; amp; nbsp; Dim Test As OleDbCommand & lt; /pre & gt;
& lt; br & gt ;
& lt; pre & gt; & amp; amp; nbsp; & amp; amp; nbsp; & amp; amp; nbsp; End Sub & lt; / pre & gt ;
& lt; br & gt ;
& lt; pre & gt; Clase final & lt; / pre & gt ;
da como resultado un error de sintaxis (& amp; quot; Type & amp; apos; OleDbCommand & amp; apos; no está definido & amp; quot;) debido a la calificación del espacio de nombres de Importaciones System.Data no & amp; apos; t proporciona suficiente información para encontrar el objeto OleDbCommand.
Aunque la calificación de los nombres en el código fuente de su programa se puede coordinar en cualquier nivel en & amp; apparent & amp; apos; apos; jerarquía, todavía tiene que elegir el espacio de nombres correcto para hacer referencia. Por ejemplo, .NET proporciona un espacio de nombres System.Web y una lista completa de otros que comienzan con System.Web …
Nota
Hay dos archivos DLL completamente diferentes para las referencias. TIENE que elegir el correcto porque WebService es un método en uno de ellos.
& lt; / br & gt ;
& lt; / br & gt ;
& lt; / br & gt ;
& lt; / br & gt ;
& lt; / br & gt ;
& lt; / br & gt ;
& lt; / br & gt ;
& lt; / br & gt ;
& lt; / br & gt ;
& lt; / br & gt ;
& lt; / br & gt ;
& lt; / br & gt ;
& lt; / br & gt ;
& lt; / br & gt ;
& lt; / br & gt ;
& lt; / br & gt ;
& lt; / br & gt ;
& lt; / br & gt ;
& amp; # x203A; Informática