Používání oborů názvů ve VB.NET

click fraud protection

Nejběžnější způsob, jakým jsou jmenné prostory VB.NET používány většinou programátoři je sdělit kompilátoru, které knihovny .NET Framework jsou potřebné pro konkrétní program. Když pro svůj projekt vyberete „šablonu“ (například „Windows Forms Application“), jedna z věcí že jste vybrali, je konkrétní sada jmenných prostorů, na které se ve vašem projekt. Díky tomu bude kód v těchto jmenných prostorech k dispozici pro váš program.

Například některé z jmenných prostorů a skutečné soubory, ve kterých jsou pro aplikaci Windows Forms, jsou:

Systém> v System.dll
Systém. Data> v systému. Data.dll
Systém. Nasazení> Systém. Deployment.dll
Systém. Kreslení> Systém. Drawing.dll
Systém. Okna. Formuláře> Systém. Okna. Forms.dll

Můžete vidět (a změnit) obory názvů a odkazy pro váš projekt ve vlastnostech projektu pod Reference tab.

Tento způsob přemýšlení o jmenných prostorech způsobuje, že se jeví jako totéž jako „knihovna kódů“, ale to je pouze část myšlenky. Skutečnou výhodou oboru názvů je organizace.

Většina z nás nebude mít šanci zavést novou hierarchii oboru názvů, protože pro velkou a komplikovanou knihovnu kódů se obvykle provádí pouze jednou „na začátku“. Zde se však dozvíte, jak interpretovat jmenné prostory, které budete vyzváni k použití v mnoha organizacích.

instagram viewer

Co Namespaces dělají

Jmenné prostory umožňují organizovat desítky tisíc objektů .NET Framework a všechny objekty, které programátoři VB vytvářejí, také v projektech, takže se neshodují.

Například pokud hledáte .NET pro Barva objekt, najdete dva. Tady je Barva objekt v obou:

Systém. Výkres
Systém. Okna. Média

Pokud přidáte Dovoz příkaz pro oba obory názvů (pro vlastnosti projektu může být nezbytný odkaz) ...

Dovozní systém. Výkres
Dovozní systém. Okna. Média

... pak prohlášení jako ...

Dim a As Color

... bude označena jako chyba s poznámkou „Barva je dvojznačná“ a .NET upozorní na to, že oba jmenné prostory obsahují objekt s tímto názvem. Tento druh chyby se nazývá „kolize jmen“.

To je skutečný důvod pro „jmenné prostory“ a také to, jak se jmenné prostory používají v jiných technologiích (například XML). Jmenné prostory umožňují používat stejný název objektu, například Barva, když se jméno hodí a pořád pořád udržuje pořádek. Dalo by se definovat Barva ve vašem vlastním kódu a udržujte jej odlišný od těch v .NET (nebo kódu jiných programátorů).

Jmenný prostor MyColor
Barva veřejné třídy
Dílčí barva ()
' Dělej něco
End Sub
Koncová třída
Konec jmenného prostoru

Můžete také použít Barva objekt někde ve vašem programu, jako je tento:

Dim c jako nový MyColor. Barva
C. Barva()

Než se pustíte do některých dalších funkcí, uvědomte si, že každý projekt je obsažen v oboru názvů. VB.NET používá název vašeho projektu (WindowsApplication1 pro standardní aplikaci formulářů, pokud ji nezměníte) jako výchozí obor názvů. Chcete-li to vidět, vytvořte nový projekt (název jsme použili) NSProj a podívejte se na nástroj Prohlížeč objektů):

  1. Klikněte na Tady pro zobrazení obrázku
  2. Klikněte na ikonu Zadní v prohlížeči se vrátíte

Prohlížeč objektů zobrazuje nový obor názvů projektu (a automaticky definované objekty v něm) přímo spolu s obory názvů .NET Framework. Tato schopnost VB.NET přizpůsobit vaše objekty objektům .NET je jedním z klíčů k výkonu a flexibilitě. Proto například Intellisense zobrazí vaše vlastní objekty, jakmile je definujete.

Abychom to nakopli do zářezu, definujme nový projekt (pojmenovali jsme náš NewNSProj ve stejném řešení (použití Soubor > Přidat > Nový projekt ...) a kódovat nový obor názvů v tomto projektu. A jen aby to bylo zábavnější, pojďme nový jmenný prostor do nového modulu (pojmenovali jsme ho NewNSMod). A protože objekt musí být kódován jako třída, přidali jsme také blok třídy (pojmenovaný NewNSObj). Zde je kód a Solution Explorer, který ukazuje, jak to zapadá dohromady:

  1. Klikněte na Tady pro zobrazení obrázku
  2. Klikněte na ikonu Zadní v prohlížeči se vrátíte

Protože váš vlastní kód je „stejně jako kód Framework“, je nutné přidat odkaz NewNSMod v NSProj použít objekt v oboru názvů, i když jsou ve stejném řešení. Po dokončení můžete objekt deklarovat NSProj na základě metody v NewNSMod. Musíte také „sestavit“ projekt, aby existoval skutečný objekt, na který se bude odkazovat.

Dim o As New NewNSProj. AVBNS.NewNSMod. NewNSObj
Ó. AVBNSMethod ()

To je docela Ztlumit prohlášení však. To můžeme zkrátit pomocí Dovoz prohlášení s aliasem.

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

Kliknutím na tlačítko Spustit zobrazíte MsgBox z oboru názvů AVBNS: „Hej! Fungovalo to!"

Kdy a proč používat jmenný prostor

Všechno dosud bylo opravdu syntax - kódování pravidla, která musíte dodržovat při používání jmenných prostorů. Chcete-li však skutečně využít, potřebujete dvě věci:

  • Především je to požadavek na organizaci oboru názvů. Před začátkem vyplácení organizace oborů názvů potřebujete více než jen projekt „Hello World“.
  • Plán je používat.

Obecně, Microsoft doporučuje uspořádat kód organizace pomocí kombinace názvu vaší společnosti a názvu produktu.

Takže například pokud jste hlavním softwarovým architektem pro Dr. No's Nose zná plastickou chirurgii, možná budete chtít uspořádat své jmenné prostory jako ...

DRNo
Poradenství
ReadTheirWatchNChargeEm
TellEmNuthin
Chirurgická operace
ElephantMan
MyEyeLidsRGone

To je podobné organizaci .NET ...

Objekt
Systém
Jádro
IO
Linq
Data
Odbc
Sql

Víceúrovňových oborů názvů je dosaženo jednoduchým vnořením bloků oboru názvů.

Jmenný prostor DRNo
Jmenná chirurgie
Jmenný prostor MyEyeLidsRGone
'VB kód
Konec jmenného prostoru
Konec jmenného prostoru
Konec jmenného prostoru

nebo

Jmenný prostor DRNo. Chirurgická operace. MyEyeLidsRGone
'VB kód
Konec jmenného prostoru
instagram story viewer