VB.NET importerer erklæring versus referencer

Den faktiske virkning af Imports-erklæringen i VB.NET er ofte en kilde til forvirring for folk, der lærer sproget. Og interaktionen med VB.NET-referencer giver endnu mere forvirring. Vi vil rydde det op i dette hurtige tip.

Her er en kort oversigt over hele historien. Så går vi nærmere på detaljerne.

En henvisning til et VB.NET-navneområde er et krav og skal føjes til et projekt, før objekterne i navneområdet kan bruges. (Et sæt referencer tilføjes automatisk til forskellige skabeloner i Visual Studio eller VB.NET Express. Klik på "Vis alle filer" i Solution Explorer for at se, hvad de er.) Men importangivelsen er ikke et krav. I stedet er det simpelthen en kodningskomfort, der gør det muligt at bruge kortere navne.

Lad os nu se på et faktisk eksempel. For at illustrere denne idé bruger vi systemet. Datanavnområde - som leverer ADO.NET datateknologi.

System. Data føjes som standard til Windows-applikationer som en reference ved hjælp af applikationsskabelonen VB.NET Windows Forms.

Tilføjelse af et navneområde i referencesamlingen

instagram viewer

Tilføjelse af et nyt navneområde til referencesamlingen i et projekt gør objekterne i det navneområde også tilgængelige for projektet. Den mest synlige virkning af dette er, at Visual Studio "Intellisense" hjælper dig med at finde objekterne i popup-menukasser.

Hvis du forsøger at bruge et objekt i dit program uden en reference, genererer kodelinjen en fejl.

Importangivelsen er derimod aldrig påkrævet. Det eneste, det gør, er at lade navnet løses uden at være fuldt kvalificeret. Med andre ord (vægt tilføjet for at vise forskellene).

 Import System. Data

 Offentlig klasseskema1

 Arv System. Windows. Formularer. Form

 Privat underformular1_Load (...

 Dim Test As OLEDB. OleDbCommand

 Afslut under

 Slutteklasse 

og

 Import System. Data. OLEDB

 Offentlig klasseskema1

 Arv System. Windows. Formularer. Form

 Privat underformular1_Load (...

 Dim Test As OleDbCommand

 Afslut under

 Slutteklasse 

er begge ækvivalente. Men ...

 Import System. Data

 Offentlig klasseskema1

 Arv System. Windows. Formularer. Form

 Privat underformular1_Load (...

 Dim Test As OleDbCommand

 Afslut under

 Slutteklasse 

resulterer i en syntaksfejl ("Type 'OleDbCommand' er ikke defineret") på grund af Importerer navneområde kvalifikationssystem. Data giver ikke tilstrækkelig information til at finde objektet OleDbCommand.

Selvom kvalifikationen af ​​navne i din programkildekode kan koordineres på ethvert niveau i det 'tilsyneladende' hierarki, du skal stadig vælge det rigtige navneområde til reference. F.eks. Leverer .NET et system. Web-navneområde og en hel liste over andre, der starter med System. Web ...

Bemærk

Der er to helt forskellige DLL-filer til referencerne. Du skal vælge den rigtige, fordi WebService ikke er en metode i en af ​​dem.