VB.NET importuje prohlášení versus odkazy

click fraud protection

Skutečný účinek prohlášení Imports ve VB.NET je často zdrojem zmatku pro lidi, kteří se učí jazyku. A interakce s VB.NET Reference způsobuje ještě větší zmatek. Vyjasníme to v tomto Rychlém tipu.

Zde je stručné shrnutí celého příběhu. Pak se podíváme na podrobnosti.

Odkaz na obor názvů VB.NET je požadavek a musí být přidán do projektu, aby mohly být použity objekty v oboru názvů. (Sada odkazů je automaticky přidána pro různé šablony ve Visual Studio nebo VB.NET Express. V aplikaci Solution Explorer klikněte na „Zobrazit všechny soubory“, abyste zjistili, jaké jsou.) Příkaz Imports však není vyžadován. Místo toho je to jednoduše kódovací pohodlí, které umožňuje použití kratších jmen.

Nyní se podívejme na skutečný příklad. Pro ilustraci této myšlenky budeme používat systém. Datový jmenný prostor - který poskytuje datovou technologii ADO.NET.

Systém. Data jsou do aplikací systému Windows přidávána ve výchozím nastavení pomocí šablony VB.NET Windows Forms Application.

Přidání oboru názvů do kolekce odkazů

instagram viewer

Přidání nového oboru názvů do kolekce Reference v projektu zpřístupní také objekty v tomto oboru názvů. Nejviditelnějším efektem je, že Visual Studio "Intellisense" vám pomůže najít objekty v rozbalovacích nabídkách.

Pokud se pokusíte použít objekt v programu bez odkazu, řádek kódu vygeneruje chybu.

Naproti tomu prohlášení Imports se nikdy nevyžaduje. Jediné, co dělá, je umožnit rozlišení názvu, aniž by bylo plně kvalifikováno. Jinými slovy (zvýraznění bylo zvýrazněno, aby se ukázaly rozdíly).

 Dovoz Systém. Data

 Formulář veřejné třídy1

 Zdědí systém. Okna. Formuláře. Formulář

 Private Sub Form1_Load (...

 Dim Test As OleDb. OleDbCommand

 End Sub

 Koncová třída 

a

 Dovoz Systém. Data. OleDb

 Formulář veřejné třídy1

 Zdědí systém. Okna. Formuláře. Formulář

 Private Sub Form1_Load (...

 Dim Test As OleDbCommand

 End Sub

 Koncová třída 

jsou rovnocenné. Ale ...

 Dovoz Systém. Data

 Formulář veřejné třídy1

 Zdědí systém. Okna. Formuláře. Formulář

 Private Sub Form1_Load (...

 Dim Test As OleDbCommand

 End Sub

 Koncová třída 

má za následek chybu syntaxe ("Typ 'OleDbCommand' není definován") kvůli Importuje obor názvů kvalifikační systém. Data neposkytují dostatek informací k nalezení objektu OleDbCommand.

Přestože kvalifikace jmen ve vašem zdrojový kód programu lze koordinovat na kterékoli úrovni v „zjevné“ hierarchii, stále musíte vybrat ten správný jmenný prostor, na který se chcete odkazovat. Například .NET poskytuje systém. Webový jmenný prostor a celý seznam dalších počínaje systémem. Web ...

Poznámka

Existují dva zcela odlišné soubory DLL pro odkazy. Musíte si vybrat ten pravý, protože služba WebService není v jednom z nich metoda.

instagram story viewer