Nõuanded

VB.NET impordi avaldus versus viited

VB.NET impordi avaldus versus viited

VB.NET-i impordi avalduse tegelik mõju põhjustab keelt õppivatele inimestele sageli segadust. Ja koostoime VB.NET-i viidetega tekitab veelgi rohkem segadust. Selle kiire näpunäite selgitame välja.

Siin on lühike kokkuvõte kogu loost. Siis käsitleme üksikasju.

Viide VB.NET-nimeruumile on nõue ja see tuleb projekti lisada enne nimeruumi objektide kasutamist. (Visual Studio või VB.NET Expressi erinevatele mallidele lisatakse automaatselt viidete komplekt. Klõpsake Solution Exploreris nuppu "Kuva kõik failid", et näha, millised need on.) Kuid avaldus Importimine ei ole kohustuslik. Selle asemel on lihtsalt kodeerimise mugavus, mis võimaldab kasutada lühemaid nimesid.

Vaatame nüüd tegelikku näidet. Selle idee illustreerimiseks kasutame nimeruumi System.Data - see pakub ADO.NET-i infotehnoloogiat.

System.Data lisatakse Windowsi rakendustesse vaikimisi viitena, kasutades VB.NET Windowsi vormide rakenduse malli.

Nimeruumi lisamine viidete kogusse

Uue nimeruumi lisamine projektis olevale viidete kogule muudab selle nimeruumi objektid ka projekti jaoks kättesaadavaks. Selle kõige nähtavam efekt on see, et Visual Studio "Intellisense" aitab teil objekte hüpikmenüü kastides üles leida.

Kui proovite oma programmis objekti kasutada ilma viiteta, tekitab koodirida tõrke.

Teisest küljest pole impordi avaldust kunagi vaja. Ainus, mida see teeb, on see, et nimi saab lahendatud ilma täieliku kvalifikatsioonita. Teisisõnu (rõhk on lisatud erinevuste näitamiseks).

Import System.Data

Avaliku klassi vorm1

Pärib süsteemi.Windows.Forms.Form

Privaatne alavorm1_koormus (…)

Dim Test As OleDb.OleDbCommand

Lõpu alam

Lõpuklass

ja

Import System.Data.OleDb

Avaliku klassi vorm1

Pärib süsteemi.Windows.Forms.Form

Privaatne alavorm1_koormus (…)

Dim Test As OleDbCommand

Lõpu alam

Lõpuklass

on mõlemad samaväärsed. Aga…

Import System.Data

Avaliku klassi vorm1

Pärib süsteemi.Windows.Forms.Form

Privaatne alavorm1_koormus (…)

Dim Test As OleDbCommand

Lõpu alam

Lõpuklass

tulemuseks on süntaksiviga ("Tüüpi 'OleDbCommand' pole määratletud"), kuna impordi nimeruumi kvalifitseerimine System.Data ei anna objekti OleDbCommand leidmiseks piisavalt teavet.

Ehkki programmide lähtekoodis olevate nimede kvalifitseerimist saab 'nähtava' hierarhia igal tasandil koordineerida, peate ikkagi valima viitamiseks õige nimeruumi. Näiteks pakub .NET nimeruumi System.Web ja terve nimekirja teistest, alustades System.Web…

Märge

Viidete jaoks on kaks täiesti erinevat DLL-faili. Peate valima õige, kuna WebService pole üheski neist meetod.