Vardų erdvės VB.NET

vyras dirba nešiojamu kompiuteriu

Klausas Vedfeltas/Taxi/Getty Images





Labiausiai paplitęs būdas, kuriuo dauguma naudoja VB.NET vardų sritis programuotojai yra nurodyti kompiliatoriui, kurios .NET Framework bibliotekos reikalingos konkrečiai programai. Kai pasirenkate savo projekto „šabloną“ (pvz., „Windows Forms Application“), vienas iš dalykų, kuriuos pasirenkate, yra konkretus vardų erdvių rinkinys, kuris bus automatiškai nurodomas jūsų projekte. Tai padarys kodą tose vardų srityse pasiekiamą jūsų programai.

Pavyzdžiui, kai kurios vardų erdvės ir faktiniai failai, kuriuose jie yra „Windows Forms“ programai, yra:



Sistema > System.dll
System.Data > System.Data.dll
System.Deployment > System.Deployment.dll
System.Drawing > System.Drawing.dll
System.Windows.Forms > System.Windows.Forms.dll

Galite pamatyti (ir pakeisti) savo projekto vardų sritis ir nuorodas projekto ypatybėse, esančiose po Nuorodos skirtuką.



Dėl tokio mąstymo apie vardų erdves jos atrodo kaip „kodų biblioteka“, tačiau tai tik dalis idėjos. Tikroji vardų erdvių nauda yra organizuotumas.

Daugelis iš mūsų neturės galimybės sukurti naujos vardų erdvės hierarchijos, nes paprastai tai daroma tik vieną kartą „pradžioje“ didelėje ir sudėtingoje kodų bibliotekoje. Tačiau čia sužinosite, kaip interpretuoti vardų sritis, kurias jūsų bus paprašyta naudoti daugelyje organizacijų.

Ką veikia vardų erdvės

Vardų erdvės leidžia tvarkyti dešimtis tūkstančių .NET Framework objektų ir visus objektus, kuriuos VB programuotojai sukuria projektuose, kad jie nesusidurtų.

Pavyzdžiui, jei .NET ieškote a Spalva objektą, rasite du. Čia yra Spalva objektas abiejuose:



|_+_|

Jei pridėsite an Importas teiginys abiem vardų erdvėms (nuoroda taip pat gali būti reikalinga projekto ypatybėms) ...

|_+_|

... tada toks teiginys kaip ...



|_+_|

... bus pažymėta kaip klaida su užrašu „Spalva dviprasmiška“ ir .NET nurodys, kad abiejose vardų erdvėse yra objektas tokiu pavadinimu. Tokio pobūdžio klaida vadinama „pavadinimų susidūrimu“.

Tai yra tikroji vardų erdvių priežastis ir taip pat vardų erdvės naudojamos kitose technologijose (pvz., XML). Vardų erdvės leidžia naudoti tą patį objekto pavadinimą, pvz Spalva , kai pavadinimas tinka ir vis tiek viską tvarko. Galite apibrėžti a Spalva objektą savo kode ir išskirkite jį nuo .NET (arba kitų programuotojų kodo).



|_+_|

Taip pat galite naudoti Spalva objektas kažkur kitur jūsų programoje, pavyzdžiui:

|_+_|

Prieš pradėdami naudotis kai kuriomis kitomis funkcijomis, atminkite, kad kiekvienas projektas yra vardų erdvėje. VB.NET naudoja jūsų projekto pavadinimą ( „Windows“ programa1 standartinių formų programai, jei jos nekeičiate) kaip numatytąją vardų sritį. Norėdami tai pamatyti, sukurkite naują projektą (naudojome pavadinimą NSPros ir patikrinkite objektų naršyklės įrankį):



  1. Spustelėkite Čia kad būtų parodyta iliustracija
  2. Spustelėkite Atgal naršyklės mygtuką, 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. Šis VB.NET gebėjimas prilyginti jūsų objektus .NET objektams yra vienas iš galios ir lankstumo raktų. Pavyzdžiui, todėl „Intellisense“ parodys jūsų objektus, kai tik juos apibrėžsite.

Norėdami tai padaryti, apibrėžkime naują projektą (pavadinome savo NaujasNSProj tame pačiame tirpale (naudokite Failas > Papildyti > Naujas projektas ... ) ir užkoduokite naują vardų erdvę tame projekte. Ir kad būtų smagiau, įdėkime naują vardų sritį į naują modulį (pavadinome ją NaujasNSMod ). Ir kadangi objektas turi būti užkoduotas kaip klasė, mes taip pat įtraukėme klasės bloką (pavadintą NaujasNSObj ). Štai kodas ir „Solution Explorer“, kad parodytumėte, kaip jie dera:

  1. Spustelėkite Čia kad būtų parodyta iliustracija
  2. Spustelėkite Atgal naršyklės mygtuką, kad grįžtumėte

Kadangi jūsų kodas yra „kaip ir Framework kodas“, būtina pridėti nuorodą NaujasNSMod in NSPros naudoti objektą vardų erdvėje, net jei jie yra tame pačiame sprendime. Kai tai padarysite, galėsite deklaruoti objektą NSPros remiantis metodu NaujasNSMod . Taip pat turite „sukurti“ projektą, kad būtų tikras objektas, į kurį būtų galima kreiptis.

|_+_|

Tai gana a Pritemdyti nors pareiškimas. Tai galime sutrumpinti naudodami an Importas pareiškimas su slapyvardžiu.

|_+_|

Spustelėjus mygtuką Vykdyti rodoma MsgBox iš AVBNS vardų srities „Ei! Pavyko!'

Kada ir kodėl naudoti vardų erdves

Viskas iki šiol tikrai tik buvo sintaksė - kodavimas taisyklės, kurių turite laikytis naudodami vardų sritis. Tačiau norint iš tikrųjų pasinaudoti, reikia dviejų dalykų:

  • Visų pirma, vardų erdvės organizavimo reikalavimas. Jums reikia daugiau nei tik „Hello World“ projekto, kad vardų erdvių organizavimas pradėtų atsipirkti.
  • Planas juos panaudoti.

Apskritai, Microsoft rekomenduoja tvarkyti organizacijos kodą naudojant įmonės pavadinimo ir produkto pavadinimo derinį.

Pavyzdžiui, jei esate vyriausiasis Dr. No's Nose Knows Plastinės chirurgijos programinės įrangos architektas, galbūt norėsite sutvarkyti savo vardų sritis taip, kaip...

|_+_|

Tai panašu į .NET organizaciją...

|_+_|

Kelių lygių vardų erdvės pasiekiamos tiesiog įdėjus vardų erdvės blokus.

|_+_|

arba

|_+_|