VB.NET importerar uttalande mot referenser

Den faktiska effekten av Imports-uttalandet i VB.NET är ofta en källa till förvirring för personer som lär sig språket. Och interaktionen med VB.NET-referenser ger ännu mer förvirring. Vi kommer att rensa det i detta snabbtips.

Här är en kort sammanfattning av hela historien. Sedan ska vi gå igenom detaljerna.

En referens till ett VB.NET-namnutrymme är ett krav och måste läggas till i ett projekt innan objekten i namnområdet kan användas. (En uppsättning referenser läggs automatiskt till för olika mallar i Visual Studio eller VB.NET Express. Klicka på "Visa alla filer" i Lösningsutforskaren för att se vad de är.) Men importuttalandet är inte ett krav. Istället är det helt enkelt en kodningsfunktion som gör att kortare namn kan användas.

Låt oss nu titta på ett faktiskt exempel. För att illustrera denna idé kommer vi att använda systemet. Datanamnsområde - som tillhandahåller ADO.NET datateknologi.

Systemet. Data läggs till i Windows-applikationer som en referens som standard med hjälp av VB.NET Windows Forms-applikationsmall.

instagram viewer

Lägga till ett namnområde i referenssamlingen

Att lägga till ett nytt namnutrymme i referenssamlingen i ett projekt gör också objekten i det namnområdet tillgängliga för projektet. Den mest synliga effekten av detta är att Visual Studio "Intellisense" hjälper dig att hitta objekten i popup-menyer.

Om du försöker använda ett objekt i ditt program utan referens genererar kodraden ett fel.

Importförklaringen krävs å andra sidan aldrig. Det enda det gör är att låta namnet lösas utan att vara fullt kvalificerat. Med andra ord (betoning tillagd för att visa skillnaderna).

 import Systemet. Data

 Public Class Form1

 Arvssystem. Windows. Former. Form

 Privat subform1_Load (...

 Dim Test As OleDb. OleDbCommand

 Avsluta under

 Slutklass 

och

 import Systemet. Data. OleDb

 Public Class Form1

 Arvssystem. Windows. Former. Form

 Privat subform1_Load (...

 Dim Test As OleDbCommand

 Avsluta under

 Slutklass 

är båda likvärdiga. Men ...

 import Systemet. Data

 Public Class Form1

 Arvssystem. Windows. Former. Form

 Privat subform1_Load (...

 Dim Test As OleDbCommand

 Avsluta under

 Slutklass 

resulterar i ett syntaxfel ("Skriv 'OleDbCommand' är inte definierat") på grund av Importerar namnutrymmet kvalifikationssystem. Data ger inte tillräckligt med information för att hitta objektet OleDbCommand.

Även om kvalificeringen av namn i din programkällkod kan koordineras på vilken nivå som helst i den "uppenbara" hierarkin, du måste fortfarande välja rätt namnområde för referens. Exempelvis tillhandahåller .NET ett system. Webbnamnsutrymme och en hel lista över andra som börjar med System. Webb ...

Notera

Det finns två helt olika DLL-filer för referenserna. Du måste välja rätt eftersom WebService inte är en metod i en av dem.

instagram story viewer