Stvarni učinak Izjave uvoza u VB.NET-u često stvara zbrku kod ljudi koji uče jezik. A interakcija s VB.NET referencama čini još veću zbrku. Razjasnit ćemo to u ovom kratkom savjetu.
Evo kratkog sažetka cijele priče. Zatim ćemo pregledati detalje.
Upućivanje na VB.NET prostor imena je uvjet i mora se dodati projektu prije nego što se objekti u prostoru imena mogu koristiti. (Skup referenca automatski se dodaje za različite predloške u Visual Studio ili VB.NET Express. Kliknite "Prikaži sve datoteke" u programu Solution Explorer da biste vidjeli o čemu se radi.), Ali Izjava uvoza nije uvjet. Umjesto toga, radi se o jednostavnom kodiranju koje omogućuje upotrebu kraćih imena.
Pogledajmo sada stvarni primjer. Da bismo ilustrirali ovu ideju, poslužit ćemo se sustavom. Data namespace - koji pruža tehnologiju podataka ADO.NET.
Sustav. Podaci se dodaju Windows aplikacijama kao referenca prema zadanom pomoću predloška VB.NET Windows Forms aplikacije.
Dodavanje prostora s imenima u zbirku referenci
Dodavanje novog prostora s imenima u kolekciju Reference u projekt čini i objekte u tom prostoru imena dostupnima i projektu. Najočitiji učinak toga je da će vam Visual Studio "Intellisense" pomoći da pronađete predmete u okvirima skočnih izbornika.
Ako pokušate koristiti objekt u svom programu bez reference, redak koda generira pogrešku.
Izjava o uvozu, s druge strane, nikada nije potrebna. Jedino što omogućuje jest da se ime riješi bez da je u potpunosti kvalificirano. Drugim riječima (naglasak je dodan da bi se pokazale razlike).
uvoz Sustav. Podaci
Oblik javne klase1
Nasljedni sustav. Windows. Obrasci. Oblik
Privatni Sub Form1_Load (...
Dim Test As OLEDB. OleDbCommand
Kraj Sub
Krajnja klasa
i
uvoz Sustav. Podaci. OLEDB
Oblik javne klase1
Nasljedni sustav. Windows. Obrasci. Oblik
Privatni Sub Form1_Load (...
Dim Test As OleDbCommand
Kraj Sub
Krajnja klasa
obje su jednake. Ali ...
uvoz Sustav. Podaci
Oblik javne klase1
Nasljedni sustav. Windows. Obrasci. Oblik
Privatni Sub Form1_Load (...
Dim Test As OleDbCommand
Kraj Sub
Krajnja klasa
rezultira sintaksičkom pogreškom ("Tip 'OleDbCommand' nije definiran") zbog Uvozi prostor s imenima sustav kvalifikacija. Podaci ne pružaju dovoljno informacija za pronalazak objekta OleDbCommand.
Iako je kvalifikacija imena u vašem programski izvorni kod možete se koordinirati na bilo kojoj razini u "prividnoj" hijerarhiji, vi morate odabrati pravi imenski prostor za referencu. Na primjer, .NET pruža sustav. Web imenski prostor i čitav popis ostalih počevši od System. Mreža ...
Bilješka
Postoje dvije potpuno različite DLL datoteke za reference. Trebate odabrati pravu jer WebService nije metoda u jednom od njih.