A Névterek használata a VB.NET-ben

A VB.NET névtereket a leggyakrabban használják programozók meg kell mondania a fordítónak, mely .NET-keretrendszer-könyvtárak szükségesek egy adott programhoz. Ha kiválaszt egy "sablont" a projektjéhez (például "Windows Forms Application"), akkor az egyik az egyik amit választott, az a névtér azon meghatározott halmaza, amelyre automatikusan hivatkozni fog a projektben. Ez a névtereken lévő kódot a program számára elérhetővé teszi.

Például néhány névtér és a tényleges fájl, amelyben vannak a Windows Forms alkalmazásban:

System> a System.dll fájlban
Rendszer. Adatok> a rendszerben. Data.dll
Rendszer. Telepítés> Rendszer. Deployment.dll
Rendszer. Rajz> Rendszer. Drawing.dll
Rendszer. Ablakok. Űrlapok> Rendszer. Ablakok. Forms.dll

Láthatja (és megváltoztathatja) a projekt névtereit és hivatkozásait a projekt tulajdonságai alatt Irodalom fület.

Ez a névterekre való gondolkodásmód úgy tűnik, hogy ugyanaz, mint a „kódkönyvtár”, de ez csak az ötlet része. A névterek valódi előnye a szervezés.

Legtöbbünk nem kapja meg a lehetőséget, hogy új névtér-hierarchiát hozzon létre, mert általában csak egyszer hajtják végre egy „elején” egy nagy és bonyolult kódkönyvtár számára. De itt megtanulja, hogyan kell értelmezni a névtereket, amelyeket sok szervezetnél fel kell kérni.

instagram viewer

Mit csinálnak a névterek?

A névterek lehetővé teszik a több tízezer .NET-keretrendszer objektum és a VB programozók által a projektekben létrehozott összes objektum szervezését, így nem ütköznek egymásba.

Például, ha .NET-en keresi a Szín objektum, talál két. Van egy Szín tárgy mindkettőben:

Rendszer. Rajz
Rendszer. Ablakok. Média

Ha hozzáad egy Behozatal nyilatkozat mindkét névtérre (hivatkozás is szükséges lehet a projekt tulajdonságaihoz) ...

Import rendszer. Rajz
Import rendszer. Ablakok. Média

... akkor egy olyan állítás, mint ...

Halványítsa színként

... hibaként jelenik meg a "Colour disbe Undefined" felirat mellett, és a .NET rámutat arra, hogy mindkét névtér tartalmaz egy ilyen nevű objektumot. Ezt a fajta hibát "név ütközésnek" nevezzük.

Ez a "névterek" valódi oka, és ez a módszer a névterek használatára más technológiákban (például az XML). A névterek lehetővé teszik ugyanazon objektumnév, például a Szín, amikor a név illeszkedik, és továbbra is rendben tartja a dolgokat. Meg lehet határozni a Szín objektumot a saját kódjában, és tartsa különböztetve a .NET-ben található kódoktól (vagy más programozók kódjától).

MyColor névtér
Nyilvános osztályú szín
Alsó szín ()
' Csinálj valamit
Befejezés Sub
Végkategória
Vége a névtérnek

Használhatja a Szín objektum valahol a programban, így:

Dim c as New MyColor. Szín
c. Szín()

Mielőtt elkezdené a többi funkció használatát, vegye figyelembe, hogy minden projekt névtérben van. A VB.NET a projekt nevét használja (WindowsApplication1 standard űrlapok alkalmazásához, ha nem változtatja meg), mint alapértelmezett névtér. Ehhez hozzon létre egy új projektet (a nevet használtuk NSProj és nézd meg az Object Browser eszközt):

  1. kettyenés Itt az ábra megjelenítéséhez
  2. Kattints a Vissza gombot a böngészőben a visszatéréshez

Az Objektum-böngésző megmutatja az új projektnevet (és az abban automatikusan definiált objektumokat) közvetlenül a .NET Framework névterekkel együtt. A VB.NET azon képessége, hogy az objektumait egyenlővé tegye a .NET objektumokkal, a hatalom és a rugalmasság egyik kulcsa. Például ez az oka annak, hogy az Intellisense megmutatja a saját objektumait, miután meghatározta őket.

Egy bevágás megjelölése érdekében definiáljunk egy új projektet (A miénket neveztük el NewNSProj ugyanabban az oldatban (felhasználjuk fájl > hozzáad > Új projekt ...) és új névteret kódol a projektben. És csak a móka kedvéért tegyük az új névteret egy új modulba (ezt neveztük el NewNSMod). És mivel egy objektumot osztályként kell kódolni, akkor egy osztályblokkot is hozzáadtunk (elnevezés: NewNSObj). Íme a kód és a Solution Explorer, amely megmutatja, hogyan illeszkedik egymáshoz:

  1. kettyenés Itt az ábra megjelenítéséhez
  2. Kattints a Vissza gombot a böngészőben a visszatéréshez

Mivel a saját kódod "pontosan olyan, mint a keretkód", hozzá kell adni egy hivatkozást NewNSMod ban ben NSProj használja az objektumot a névtérben, annak ellenére, hogy ugyanabban a megoldásban vannak. Ha elkészült, bejelentheti egy objektumot NSProj a. módszer szerint NewNSMod. A projektet "fel kell építeni", hogy létezzen egy tényleges objektum referenciaként.

Dim o as New NewNSProj. AVBNS.NewNSMod. NewNSObj
o. AVBNSMethod ()

Ez elég a Homályos nyilatkozatot. Rövidíthetjük ezt egy Behozatal nyilatkozat álnévvel.

Import NS = NewNSProj. AVBNS.NewNSMod. NewNSObj
...
Dim o As New NS
o. AVBNSMethod ()

A Futtatás gombra kattintva megjelenik a MsgBox az AVBNS névtérből: "Hé! Működött!"

Mikor és miért kell használni a névtereket?

Eddig minden valójában csak volt szintaxis - az kódolás szabályok, amelyeket be kell tartania a névterek használatakor. De ahhoz, hogy valóban kihasználhassa két dolgot:

  • Mindenekelőtt a névtér szervezésének követelménye. Nem csak egy "Hello World" projektre van szükséged, mielőtt a névterek szervezése megtérül.
  • Terv ezek felhasználására.

Általában, Microsoft azt ajánlja, hogy rendezze be szervezetének kódját a cégnév és a terméknév kombinációjával.

Tehát például, ha Ön a Dr. No orrának műanyag műtét fő műszaki tervezője, akkor érdemes megszerveznie a névtereit, mint például ...

DRNo
Tanácsadó
ReadTheirWatchNChargeEm
TellEmNuthin
Sebészet
ElephantMan
MyEyeLidsRGone

Ez hasonló a .NET szervezetéhez ...

Tárgy
Rendszer
Mag
IO
Linq
Adat
odbc
sql

A többszintű névterek egyszerűen a névtér blokkok egymásba illesztésével érhetők el.

DRNo névtér
Névtér műtét
Névtér MyEyeLidsRGone
„VB kód
Vége a névtérnek
Vége a névtérnek
Vége a névtérnek

vagy

DRNo névtér. Sebészet. MyEyeLidsRGone
„VB kód
Vége a névtérnek