VB.NET Imports Statement a referencje
Rzeczywisty efekt oświadczenia Imports w VB.NET jest często źródłem zamieszania dla osób uczących się języka. A interakcja z VB.NET References powoduje jeszcze większe zamieszanie. Wyjaśnimy to w tej krótkiej wskazówce.
Oto krótkie podsumowanie całej historii. Potem omówimy szczegóły.
Odwołanie do przestrzeni nazw VB.NET jest wymaganiem i musi zostać dodane do projektu przed użyciem obiektów w przestrzeni nazw. (Zestaw referencji jest automatycznie dodawany do różne szablony w Visual Studio lub VB.NET Express. Kliknij opcję „Pokaż wszystkie pliki” w Eksploratorze rozwiązań, aby zobaczyć, jakie one są). Ale instrukcja Imports nie jest wymagana. Zamiast tego jest to po prostu wygoda kodowania, która pozwala na użycie krótszych nazw.
Spójrzmy teraz na rzeczywisty przykład. Aby zilustrować ten pomysł, użyjemy przestrzeni nazw System.Data — która zapewnia technologię danych ADO.NET.
System.Data jest domyślnie dodawany do aplikacji systemu Windows jako odwołanie przy użyciu szablonu aplikacji formularzy systemu Windows VB.NET.
Dodawanie przestrzeni nazw w kolekcji Reference
Dodanie nowej przestrzeni nazw do kolekcji References w projekcie sprawia, ż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 wyskakujących okienkach menu.
Jeśli spróbujesz użyć obiektu w programie bez referencji, wiersz kodu wygeneruje błąd.
Z drugiej strony oświadczenie Imports nigdy nie jest wymagane. Jedyne, co robi, to pozwala na rozwiązanie nazwy bez pełnej kwalifikacji. Innymi słowy (podkreślenie dodane, aby pokazać różnice).
|_+_||_+_||_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|
oraz
|_+_||_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|
są równoważne. Ale ...
|_+_||_+_||_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|
powoduje błąd składni („Typ „OleDbCommand” nie jest zdefiniowany”) z powodu Importuje przestrzeń nazw kwalifikacja System.Data nie zapewnia wystarczających informacji, aby znaleźć obiekt OleDbCommand.
Chociaż kwalifikacja imion w twoim kod źródłowy programu mogą być koordynowane na dowolnym poziomie w „pozornej” hierarchii, nadal musisz wybrać odpowiednią przestrzeń nazw do odniesienia. Na przykład .NET udostępnia przestrzeń nazw System.Web i całą listę innych, zaczynając od System.Web ...
Notatka
Istnieją dwa zupełnie różne pliki DLL dla odniesień. MUSISZ wybrać właściwą, ponieważ WebService nie jest metodą w jednym z nich.