Utilizarea spațiilor de nume în VB.NET

Cei mai mulți utilizează spațiile de nume VB.NET cele mai frecvente programatori este de a spune compilatorului care .NET Framework biblioteci sunt necesare pentru un anumit program. Când alegeți un „șablon” pentru proiectul dvs. (cum ar fi „Aplicația Windows Forms”) unul dintre aceste lucruri că alegeți este setul specific de spații de nume la care se vor face referințe automate în dvs. proiect. Acest lucru face ca codul din acele spații de nume să fie disponibile programului.

De exemplu, unele dintre spațiile de nume și fișierele reale în care se află pentru o aplicație Windows Forms sunt:

System> în System.dll
Sistem. Date> în sistem. Data.dll
Sistem. Implementare> Sistem. Deployment.dll
Sistem. Desen> sistem. Drawing.dll
Sistem. Windows. Formulare> Sistem. Windows. Forms.dll

Puteți vedea (și modifica) spațiile de nume și referințele pentru proiectul dvs. în proprietățile proiectului de sub Referințe tab.

Acest mod de a gândi spațiile de nume face ca acestea să pară doar același lucru cu „biblioteca de coduri”, dar asta este doar o parte a ideii. Beneficiul real al spațiilor de nume este organizarea.

instagram viewer

Cei mai mulți dintre noi nu vom avea șansa de a stabili o nouă ierarhie a spațiului de nume, deoarece în general se face doar o singură dată „la început” pentru o bibliotecă de coduri mare și complicată. Dar, aici, veți învăța cum să interpretați spațiile de nume pe care vi se va cere să le utilizați în multe organizații.

Ce fac spațiile de nume

Spațiile de nume fac posibilă organizarea a zeci de mii de obiecte .NET Framework și toate obiectele pe care programatorii VB le creează în proiecte, astfel încât acestea nu se ciocnesc.

De exemplu, dacă căutați .NET pentru a Culoare obiect, găsești două. Este un Culoare obiect în ambele:

Sistem. Desen
Sistem. Windows. Mass-media

Dacă adăugați un importurile instrucțiune pentru ambele spații de nume (o referință poate fi necesară și pentru proprietățile proiectului) ...

Sistemul de importuri. Desen
Sistemul de importuri. Windows. Mass-media

... apoi o declarație de genul ...

Dim a As Color

... va fi marcat ca o eroare cu nota, „Culoarea este ambiguă” și .NET va sublinia că ambele spații de nume conțin un obiect cu acest nume. Acest tip de eroare se numește „coliziune de nume”.

Acesta este motivul real pentru „spații de nume” și este și modul în care spațiile de nume sunt utilizate în alte tehnologii (cum ar fi XML). Spațiile de nume fac posibilă utilizarea aceluiași nume de obiect, cum ar fi Culoare, când numele se potrivește și încă țin lucrurile organizate. Ați putea defini o Culoare obiectați-vă în propriul cod și păstrați-l distinct de cele din .NET (sau codul altor programatori).

Spațiul de nume MyColor
Culoarea clasei publice
Sub culoare ()
' Fă ceva
Sub final
Clasa finală
End Space names

Puteți utiliza, de asemenea, Culoare obiectați în altă parte în programul dvs. astfel:

Dim c Ca nou MyColor. Culoare
c. Culoare()

Înainte de a intra în unele dintre celelalte funcții, fiți conștienți că fiecare proiect este conținut într-un spațiu de nume. VB.NET folosește numele proiectului dvs. (WindowsApplication1 pentru o cerere de formulare standard dacă nu o schimbați) ca spațiu de nume implicit. Pentru a vedea acest lucru, creați un nou proiect (am folosit numele NSProj și verificați instrumentul Browser obiect):

  1. Clic Aici pentru a afișa ilustrația
  2. Apasă pe Înapoi pentru a reveni

Browserul de obiecte afișează noul dvs. spațiu de nume al proiectului (și obiectele definite automat în el) chiar împreună cu spațiile de nume .NET Framework. Această abilitate a VB.NET de a face obiectele dvs. egale cu obiectele .NET este una dintre cheile puterii și flexibilității. De exemplu, acesta este motivul pentru care Intellisense vă va afișa propriile obiecte imediat ce le definiți.

Pentru a lansa o notch, să definim un nou proiect (L-am numit al nostru NewNSProj în aceeași soluție (utilizați Fişier > Adăuga > Proiect nou ...) și codează un spațiu de nume nou în acel proiect. Și doar pentru a face mai distractiv, haideți să plasăm noul spațiu de nume într-un modul nou (l-am numit NewNSMod). Și întrucât un obiect trebuie codat ca o clasă, am adăugat și un bloc de clasă (numit NewNSObj). Iată codul și Exploratorul de soluții pentru a arăta cum se potrivește:

  1. Clic Aici pentru a afișa ilustrația
  2. Apasă pe Înapoi pentru a reveni

Întrucât propriul cod este „la fel ca codul Framework”, este necesar să adăugați o referință la NewNSMod în NSProj să folosească obiectul în spațiul de nume, chiar dacă sunt în aceeași soluție. Odată făcut acest lucru, puteți declara un obiect în NSProj pe baza metodei din NewNSMod. De asemenea, trebuie să „construiți” proiectul, astfel încât să existe un obiect real la referință.

Dim o Ca nou nouNSProj. AVBNS.NewNSMod. NewNSObj
o. AVBNSMethod ()

Este destul de Dim declarație totuși. Putem scurta asta folosind un importurile declarație cu un alias.

Importuri NS = NewNSProj. AVBNS.NewNSMod. NewNSObj
...
Dim o Ca NS
o. AVBNSMethod ()

Făcând clic pe butonul Executare afișează MsgBox din spațiul de nume AVBNS, „Hei! A mers!"

Când și de ce să folosiți spații de nume

Totul de până acum a fost într-adevăr sintaxă - de codificare reguli pe care trebuie să le urmați folosind spații de nume. Dar pentru a profita cu adevărat, ai nevoie de două lucruri:

  • O cerință pentru organizarea spațiului de nume în primul rând. Aveți nevoie de mai mult decât doar un proiect „Hello World” înainte ca organizarea spațiilor de nume să înceapă să dea rezultate.
  • Un plan de a le folosi.

În general, Microsoft recomandă să organizați codul organizației dvs. folosind o combinație între numele companiei și numele produsului.

De exemplu, dacă sunteți arhitectul șef de software pentru Dr. No's Nose Knows Chirurgie Plastică, atunci poate doriți să vă organizați spațiile de nume precum ...

DRNo
consultanţă
ReadTheirWatchNChargeEm
TellEmNuthin
Interventie chirurgicala
ElephantMan
MyEyeLidsRGone

Acest lucru este similar cu organizația .NET ...

Obiect
Sistem
miez
IO
LINQ
Date
odbc
sql

Spațiile de nume pe mai multe niveluri sunt obținute prin simpla cuibare a blocurilor de spațiu de nume.

Spațiul de nume DRN
Chirurgia spațiului de nume
Spațiul de nume MyEyeLidsRGone
„Cod VB
End Space names
End Space names
End Space names

sau

Spațiul de nume DRN. Interventie chirurgicala. MyEyeLidsRGone
„Cod VB
End Space names