Dažniausiai VB.NET vardų sritis naudoja dauguma programuotojai yra pasakyti kompiliatoriui, kurios .NET Framework bibliotekos reikalingos tam tikrai programai. Kai pasirenkate savo projekto „šabloną“ (pvz., „Windows Forms taikymas“), vienas iš dalykų kad pasirinksite yra konkretus vardų sričių rinkinys, kuris bus automatiškai nurodytas jūsų projektas. Tai suteikia kodą tose vardų vietose jūsų programai.
Pvz., Kai kurios vardų erdvės ir faktiniai failai, kuriuose jie yra, naudodami „Windows Forms“ programą, yra:
Sistema> sistemoje System.dll
Sistema. Duomenys> sistemoje. Data.dll
Sistema. Diegimas> Sistema. Diegimo.dll
Sistema. Brėžinys> Sistema. Piešimas.dll
Sistema. „Windows“. Formos> Sistema. „Windows“. Formos.dll
Galite pamatyti (ir pakeisti) savo projekto vardų vietas ir nuorodas projekto ypatybėse skiltyje Nuorodos skirtukas.
Toks mąstymas apie vardų erdves verčia juos atrodyti lygiai taip pat kaip „kodų biblioteka“, tačiau tai tik dalis idėjos. Tikroji vardų erdvės nauda yra organizavimas.
Daugelis iš mūsų negausime galimybės nustatyti naują vardų erdvės hierarchiją, nes paprastai tai daroma tik vieną kartą „iš pradžių“ didelėje ir sudėtingoje kodų bibliotekoje. Tačiau čia sužinosite, kaip interpretuoti vardų sritis, kurių būsite paprašyti naudoti daugelyje organizacijų.
Ką veikia vardų erdvės
Vardų erdvės suteikia galimybę sutvarkyti dešimtis tūkstančių .NET Framework objektų ir visus objektus, kuriuos VB programuotojai sukuria projektuose, todėl jie nesikiša.
Pvz., Jei .NET ieškote Spalva objektą, rasite du. Čia yra Spalva objektas abiejuose:
Sistema. Piešimas
Sistema. „Windows“. Žiniasklaida
Jei pridėsite Importas pareiškimas abiem vardų vietoms (nuoroda taip pat gali būti reikalinga projekto ypatybėms) ...
Importo sistema. Piešimas
Importo sistema. „Windows“. Žiniasklaida
... tada teiginys kaip ...
Sumažinkite spalvą
... bus pažymėta kaip klaida su užrašu „Spalva nevienareikšmė“, o .NET nurodys, kad abiejose vardų vietose yra objektas tokiu pavadinimu. Tokia klaida vadinama „vardo susidūrimu“.
Tai yra tikroji „vardų erdvių“ priežastis ir tai, kaip vardų vietos yra naudojamos kitose technologijose (pvz., XML). Vardų erdvės suteikia galimybę naudoti tą patį objekto pavadinimą, pvz., Spalva, kai vardas tinka ir vis tiek viską tvarko. Galite apibrėžti a Spalva objektą savo kode ir atskirkite jį nuo .NET (arba kitų programuotojų kodo).
Vardų sritis „MyColor“
Visuomenės klasės spalva
Sub spalva ()
'Daryk ką nors
Pabaigos poskyris
Pabaigos klasė
Pabaigos vardų sritis
Taip pat galite naudoti Spalva objektas kur nors kitur jūsų programoje, kaip šis:
„Dim c As New MyColor“. Spalva
c. Spalva ()
Prieš pradėdami naudotis kitomis funkcijomis, atminkite, kad kiekvienas projektas yra vardų srityje. VB.NET naudoja jūsų projekto pavadinimą („WindowsApplication1“ standartinių formų programai, jei jos nepakeisite) kaip numatytąją vardų sritį. Norėdami tai pamatyti, sukurkite naują projektą (mes naudojome pavadinimą NSProj ir patikrinkite objektų naršyklės įrankį):
- Spustelėkite Čia norėdami parodyti iliustraciją
- Spustelėkite Atgal mygtuką naršyklėje, kad grįžtumėte
Objektų naršyklė rodo jūsų naują projekto vardų sritį (ir joje automatiškai apibrėžtus objektus) kartu su .NET Framework vardų erdvėmis. Ši VB.NET galimybė padaryti jūsų objektus lygius .NET objektams yra viena iš galios ir lankstumo raktų. Pavyzdžiui, todėl „Intellisense“ parodys jūsų pačių objektus, kai tik juos apibrėžsite.
Norėdami parodyti aukščiau esančią ribą, apibrėžkime naują projektą (Mes pavadinome savo „NewNSProj“ tame pačiame tirpale (naudoti Byla > Papildyti > Naujas projektas ...) ir užkoduokite naują vardų sritį tame projekte. O kad būtų linksmiau, įdėkime naują vardų sritį į naują modulį (mes jį pavadinome „NewNSMod“). Kadangi objektas turi būti užkoduotas kaip klasė, mes taip pat pridėjome klasės bloką (pavadintą „NewNSObj“). Kodas ir „Solution Explorer“ parodo, kaip jis tinka kartu:
- Spustelėkite Čia norėdami parodyti iliustraciją
- Spustelėkite Atgal mygtuką naršyklėje, kad grįžtumėte
Kadangi jūsų pačių kodas yra „kaip ir pagrindų kodas“, būtina pridėti nuorodą „NewNSMod“ į NSProj naudoti objektą vardų erdvėje, net jei jie yra tame pačiame sprendime. Tai padarę, galite deklaruoti objektą NSProj remiantis metodu „NewNSMod“. Taip pat turite „pastatyti“ projektą, kad egzistuotų tikrasis objektas, į kurį būtų galima remtis.
Dim o kaip naujas „NewNSProj“. AVBNS.NewNSMod. „NewNSObj“
o. AVBNSmetodika ()
Tai gana a Dim teiginys. Mes galime tai sutrumpinti naudodami Importas pareiškimas su slapyvardžiu.
Importas NS = „NewNSProj“. AVBNS.NewNSMod. „NewNSObj“
...
Dim o kaip nauja NS
o. AVBNSmetodika ()
Spustelėjus mygtuką Vykdyti, pasirodo „MsgBox“ iš AVBNS vardų srities: „Ei! Pavyko!"
Kada ir kodėl naudoti vardų sritį
Viskas iki šiol iš tikrųjų tiesiog buvo sintaksė - kodavimas taisykles, kurių turite laikytis naudodamiesi vardų sritimis. Tačiau norint iš tikrųjų pasinaudoti, reikia dviejų dalykų:
- Visų pirma, reikalavimas vardų erdvės organizavimui. Norint, kad vardų erdvių organizavimas pradėtų atsiperka, reikia ne tik „Sveikas pasaulis“ projekto.
- Planas juos naudoti.
Apskritai, „Microsoft“ rekomenduoja organizuoti savo organizacijos kodą naudojant jūsų įmonės pavadinimo ir produkto pavadinimo derinį.
Taigi, pavyzdžiui, jei esate vyriausiasis Dr. No nosies žinios apie plastinę chirurgiją programinės įrangos architektas, tada galbūt norėsite organizuoti savo vardų vietas kaip ...
DRN
Konsultacijos
„ReadTheirWatchNChargeEm“
„TellEmNuthin“
Chirurgija
DramblysMan
„MyEyeLidsRGone“
Tai panašu į .NET organizaciją ...
Objektas
Sistema
Core
IO
Linq
Duomenys
Odbc
Sql
Daugiapakopės vardų erdvės pasiekiamos tiesiog sudedant vardų srities blokus.
Vardų sritis DRN nėra
Vardų srities chirurgija
„Vardų sritis“ „MyEyeLidsRGone“
'VB kodas
Pabaigos vardų sritis
Pabaigos vardų sritis
Pabaigos vardų sritis
arba
Vardų sritis DRN nėra. Chirurgija. „MyEyeLidsRGone“
'VB kodas
Pabaigos vardų sritis