Namespace – příkaz
Deklaruje název oboru názvů a způsobí, že zdrojový kód následující po deklaraci bude zkompilován v rámci tohoto oboru názvů.
Syntax
Namespace [Global.] { name | name.name }
[ componenttypes ]
End Namespace
Součásti
Globální volitelné. Umožňuje definovat obor názvů mimo kořenový obor názvů projektu. Viz Obory názvů v Visual Basic.
name Požadované. Jedinečný název, který identifikuje obor názvů. Musí to být platný Visual Basic identifikátor. Další informace najdete v tématu Deklarované názvy elementů.
componenttypes Volitelné. Prvky, které tvoří obor názvů. Patří mezi ně mimo jiné výčty, struktury, rozhraní, třídy, moduly, delegáty a další obory názvů.
End Namespace Ukončí Namespace blok.
Poznámky
Obory názvů se používají jako organizační systém. Poskytují způsob, jak klasifikovat a prezentovat programovací prvky, které jsou vystaveny jiným programům a aplikacím. Všimněte si, že obor názvů není typ v tom smyslu, že třída nebo struktura je – nelze deklarovat programovací element, který má datový typ oboru názvů.
Všechny programovací prvky deklarované po Namespace příkazu patří do tohoto oboru názvů. Visual Basic pokračuje v kompilaci prvků do posledního deklarovaného oboru názvů, dokud nenarazíte na příkaz End Namespace nebo jiný Namespace příkaz.
Pokud už je obor názvů definovaný, dokonce i mimo váš projekt, můžete do něj přidat programovací prvky. Chcete-li to provést, pomocí Namespace příkazu nasměrujte Visual Basic prvky zkompilovat do tohoto oboru názvů.
Příkaz můžete použít Namespace pouze na úrovni souboru nebo oboru názvů. To znamená, že kontext deklarace pro obor názvů musí být zdrojový soubor nebo jiný obor názvů a nemůže to být třída, struktura, modul, rozhraní nebo procedura. Další informace najdete v tématu Kontexty deklarace a Výchozí úrovně přístupu.
Jeden obor názvů můžete deklarovat v rámci jiného. Neexistuje žádné striktní omezení úrovní vnoření, které můžete deklarovat, ale mějte na paměti, že když jiný kód přistupuje k prvkům deklarovaným v nejvnitřnějším oboru názvů, musí používat kvalifikační řetězec, který obsahuje všechny názvy oborů názvů v hierarchii vnoření.
Úroveň přístupu
Obory názvů se zachází, jako by měly Public úroveň přístupu. Obor názvů je přístupný z kódu kdekoli ve stejném projektu, z jiných projektů, které odkazují na projekt, a z jakéhokoli sestavení sestavené z projektu.
Programovací elementy deklarované na úrovni oboru názvů, což znamená v oboru názvů, ale ne uvnitř jiného prvku, mohou mít Public nebo Friend přístup. Pokud není zadán, úroveň přístupu takového prvku používá Friend ve výchozím nastavení. Mezi prvky, které lze deklarovat na úrovni oboru názvů, patří třídy, struktury, moduly, rozhraní, výčty a delegáty. Další informace najdete v tématu Kontexty deklarace a Výchozí úrovně přístupu.
Kořenový obor názvů
Všechny názvy oborů názvů v projektu jsou založené na kořenovém oboru názvů. Visual Studio přiřadí název projektu jako výchozí kořenový obor názvů pro veškerý kód v projektu. Pokud má například projekt název Payroll , jeho programovací prvky patří do oboru názvů Payroll . Pokud Namespace funding deklarujete , úplný název tohoto oboru názvů je Payroll.funding .
Pokud chcete v příkazu zadat existující obor názvů, například v příkladu obecné třídy seznamu, můžete kořenový obor názvů nastavit Namespace na hodnotu null. Chcete-li to provést, Project v nabídce Project klikněte na Vlastnosti a potom zrušte zaškrtnutí položky Kořenový obor názvů, aby pole bylo prázdné. Pokud byste to v příkladu obecné třídy seznamu neudělali, kompilátor Visual Basic by v projektu jako nový obor názvů s úplným System.Collections.Generic Payroll názvem Payroll.System.Collections.Generic .
Případně můžete pomocí klíčového slova odkazovat na prvky oborů názvů Global definovaných mimo váš projekt. To vám umožní zachovat název projektu jako kořenový obor názvů. Tím se snižuje riziko neúmyslného sloučení programovacích prvků s prvky existujících oborů názvů. Další informace najdete v části Globální klíčové slovo v plně kvalifikovaných názvech v tématu Obory názvů v Visual Basic.
Klíčové Global slovo lze použít také v příkazu Namespace. To vám umožní definovat obor názvů z kořenového oboru názvů vašeho projektu. Další informace najdete v části Global Keyword in Namespace Statements v tématu Oborynázvů v Visual Basic .
Řešení potíží. Kořenový obor názvů může vést k neočekávaným řetězenám názvů oborů názvů. Pokud odkazujete na obory názvů definované mimo váš projekt, kompilátor Visual Basic je může vykládat jako vnořené obory názvů v kořenovém oboru názvů. V takovém případě kompilátor nerozpozná žádné typy, které již byly definovány v externích oborech názvů. Pokud se tomu chcete vyhnout, nastavte kořenový obor názvů na hodnotu null, jak je popsáno v části Kořenový obor názvů, nebo použijte klíčové slovo pro přístup k prvkům Global externích oborů názvů.
Atributy a modifikátory
Na obor názvů nelze použít atributy. Atribut přispívá informace do metadat sestavení, což není smysluplné pro zdrojové klasifikátory, jako jsou obory názvů.
V oboru názvů nelze použít žádné modifikátory přístupu, procedur ani jiné modifikátory. Vzhledem k tomu, že se jedná o typ, nejsou tyto modifikátory smysluplné.
Příklad 1
Následující příklad deklaruje dva obory názvů, jeden vnořený v druhém.
Namespace n1
Namespace n2
Class a
' Insert class definition.
End Class
End Namespace
End Namespace
Příklad 2
Následující příklad deklaruje několik vnořených oborů názvů na jednom řádku a je ekvivalentní předchozímu příkladu.
Namespace n1.n2
Class a
' Insert class definition.
End Class
End Namespace
Příklad 3
Následující příklad přistupuje k třídě definované v předchozích příkladech.
Dim instance As New n1.n2.a
Příklad 4
Následující příklad definuje kostru nové obecné třídy seznamu a přidá ji do oboru System.Collections.Generic názvů .
Namespace System.Collections.Generic
Class specialSortedList(Of T)
Inherits List(Of T)
' Insert code to define the special generic list class.
End Class
End Namespace