Den faktiske effekten av Imports-uttalelsen i VB.NET er ofte en kilde til forvirring for folk som lærer språket. Og interaksjonen med VB.NET Referanser gir enda mer forvirring. Vi kommer til å fjerne det i dette raske tipset.
Her er en kort oppsummering av hele historien. Så skal vi gå gjennom detaljene.
En henvisning til et VB.NET-navneområde er et krav og må legges til et prosjekt før objektene i navnefeltet kan brukes. (Et sett med referanser legges automatisk til for forskjellige maler i Visual Studio eller VB.NET Express. Klikk på "Vis alle filer" i Løsningsutforsker for å se hva de er.) Men Imports-uttalelsen er ikke et krav. I stedet er det ganske enkelt en kodingsfasiliteter som gjør det mulig å bruke kortere navn.
La oss se på et faktisk eksempel. For å illustrere denne ideen, bruker vi systemet. Datanavnområde - som gir ADO.NET datateknologi.
System. Data legges til i Windows-applikasjoner som en referanse som standard ved å bruke VB.NET Windows Forms Application mal.
Legge til et navneområde i referansesamlingen
Når du legger til et nytt navneområde i referansesamlingen i et prosjekt, blir også objektene i det navneområdet tilgjengelig for prosjektet. Den mest synlige effekten av dette er at Visual Studio "Intellisense" vil hjelpe deg med å finne objektene i popup-menybokser.
Hvis du prøver å bruke et objekt i programmet uten en referanse, genererer kodelinjen en feil.
Importserklæringen er derimot aldri påkrevd. Det eneste det gjør er å la navnet løses uten å være fullt kvalifisert. Med andre ord (vekt lagt til for å vise forskjellene).
import System. Data
Offentlig klasseskjema1
Arv System. Windows. Former. Form
Privat subform1_Load (...
Dim Test As OLEDB. OleDbCommand
Slutt sub
Sluttklasse
og
import System. Data. OLEDB
Offentlig klasseskjema1
Arv System. Windows. Former. Form
Privat subform1_Load (...
Dim Test As OleDbCommand
Slutt sub
Sluttklasse
er begge likeverdige. Men ...
import System. Data
Offentlig klasseskjema1
Arv System. Windows. Former. Form
Privat subform1_Load (...
Dim Test As OleDbCommand
Slutt sub
Sluttklasse
resulterer i en syntaksfeil ("Skriv 'OleDbCommand' er ikke definert") på grunn av Importerer navneområde kvalifiseringssystem. Data gir ikke nok informasjon til å finne objektet OleDbCommand.
Selv om kvalifiseringen av navn i din programkildekode kan koordineres på et hvilket som helst nivå i det "tilsynelatende" hierarkiet, du må fremdeles velge riktig navneareal til referanse. .NET gir for eksempel et system. Nettnavnområde og en hel liste over andre som starter med System. Internett ...
Merk
Det er to helt forskjellige DLL-filer for referansene. Du må velge den rette fordi WebService ikke er en metode i en av dem.