Rzeczywisty efekt instrukcji Imports w VB.NET jest często źródłem nieporozumień dla osób uczących się języka. A interakcja z referencjami VB.NET powoduje jeszcze więcej zamieszania. Wyjaśnimy to w tej Szybkiej Poradzie.
Oto krótkie podsumowanie całej historii. Następnie omówimy szczegóły.
Odwołanie do przestrzeni nazw VB.NET jest wymaganiem i musi zostać dodane do projektu, aby można było użyć obiektów w przestrzeni nazw. (Zestaw referencji jest automatycznie dodawany do pliku różne szablony w Visual Studio lub VB.NET Express. Kliknij „Pokaż wszystkie pliki” w Eksploratorze rozwiązań, aby zobaczyć, jakie to są.) Jednak instrukcja Import nie jest wymagana. Zamiast tego jest to po prostu wygoda kodowania, która umożliwia stosowanie krótszych nazw.
Spójrzmy teraz na prawdziwy przykład. Aby zilustrować ten pomysł, użyjemy Systemu. Przestrzeń nazw danych - która zapewnia technologię danych ADO.NET.
System. Dane są domyślnie dodawane do aplikacji Windows jako odniesienie przy użyciu szablonu aplikacji Windows Forms VB.NET.
Dodawanie przestrzeni nazw w kolekcji References
Dodanie nowej przestrzeni nazw do kolekcji References w projekcie powoduje, że obiekty w tej przestrzeni nazw są również dostępne dla projektu. Najbardziej widocznym efektem tego jest to, że Visual Studio „Intellisense” pomoże ci znaleźć obiekty w oknach menu podręcznego.
Jeśli spróbujesz użyć obiektu w programie bez odwołania, wiersz kodu generuje błąd.
Z drugiej strony, instrukcja Imports nigdy nie jest wymagana. Jedyne, co robi, to pozwala na rozwiązanie nazwy bez pełnej kwalifikacji. Innymi słowy (podkreślenie dodane, aby pokazać różnice).
Import System. Dane
Formularz klasy publicznej 1
Dziedziczy system. Windows Formularze Formularz
Sub-prywatny formularz Form1_Load (...
Dim Test As OleDb. OleDbCommand
Napis końcowy
Klasa końcowa
i
Import System. Dane. OleDb
Formularz klasy publicznej 1
Dziedziczy system. Windows Formularze Formularz
Sub-prywatny formularz Form1_Load (...
Dim Test As OleDbCommand
Napis końcowy
Klasa końcowa
oba są równoważne. Ale ...
Import System. Dane
Formularz klasy publicznej 1
Dziedziczy system. Windows Formularze Formularz
Sub-prywatny formularz Form1_Load (...
Dim Test As OleDbCommand
Napis końcowy
Klasa końcowa
powoduje błąd składni („Typ„ OleDbCommand ”nie jest zdefiniowany”) z powodu Importuje przestrzeń nazw System kwalifikacji. Dane nie dostarczają wystarczających informacji, aby znaleźć obiekt OleDbCommand.
Chociaż kwalifikacja nazwisk w twoim kod źródłowy programu można koordynować na dowolnym poziomie w „pozornej” hierarchii, nadal musisz wybrać odpowiednią przestrzeń nazw, do której chcesz się odwoływać. Na przykład .NET zapewnia system. Przestrzeń nazw internetowych i cała lista innych zaczynających się na System. Internet ...
Uwaga
Istnieją dwa zupełnie różne pliki DLL dla odniesień. Musisz wybrać właściwy, ponieważ WebService nie jest metodą w jednym z nich.