Namespace – příkaz
Deklaruje název oboru názvů a způsobí, že zdrojový kód, který následuje za deklarací, se zkompiluje v rámci tohoto oboru názvů.
Syntaxe
Namespace [Global.] { name | name.name }
[ componenttypes ]
End Namespace
Součástky
Globální volitelné. Umožňuje definovat obor názvů mimo kořenový obor názvů projektu. Viz Obory názvů v jazyce Visual Basic.
name
Požadované. Jedinečný název, který identifikuje obor názvů. Musí to být platný identifikátor jazyka Visual Basic. Další informace naleznete v tématu Deklarované názvy elementů.
componenttypes
Volitelné. Prvky, které tvoří obor názvů Patří mezi ně, ale nejsou omezeny, 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í typem v tom smyslu, že třída nebo struktura je – nemůžete deklarovat programovací prvek, který má datový typ oboru názvů.
Všechny programovací prvky deklarované za Namespace
příkazem patří do daného oboru názvů. Visual Basic nadále kompiluje elementy do posledního deklarovaného oboru názvů, dokud nenarazí End Namespace
na příkaz nebo jiný Namespace
příkaz.
Pokud je obor názvů již definovaný, i mimo projekt, můžete do něj přidat programovací prvky. K tomu použijete příkaz pro nasměrování jazyka Namespace
Visual Basic ke kompilaci prvků 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 oboru názvů musí být zdrojový soubor nebo jiný obor názvů a nemůže být třída, struktura, modul, rozhraní nebo procedura. Další informace naleznete v tématu Kontexty deklarace a výchozí úrovně přístupu.
Jeden obor názvů můžete deklarovat v rámci jiného oboru názvů. Na úrovně vnoření, které můžete deklarovat, neexistuje žádné přísné omezení, ale mějte na paměti, že pokud ostatní kódy přistupují k prvkům deklarovaným v nejvnitřnějším oboru názvů, musí použít řetězec kvalifikace, který obsahuje všechny názvy oborů názvů v hierarchii vnoření.
Úroveň přístupu
Obory názvů se považují za ty, které mají Public
úroveň přístupu. Obor názvů je přístupný z kódu kdekoli ve stejném projektu, z jiných projektů, které na projekt odkazují, a z libovolného sestavení vytvořeného z projektu.
Programovací prvky deklarované na úrovni oboru názvů, což znamená v oboru názvů, ale ne uvnitř žádného jiného prvku, mohou mít nebo Friend
přistupovatPublic
. Pokud není zadáno, úroveň přístupu takového prvku se ve výchozím nastavení používá Friend
. Prvky, které můžete deklarovat na úrovni oboru názvů, zahrnují třídy, struktury, moduly, rozhraní, výčty a delegáty. Další informace naleznete 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 je projekt například pojmenován Payroll
, jeho programovací prvky patří do oboru názvů Payroll
. Pokud deklarujete Namespace funding
, ú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 Namespace
názvů nastavit na hodnotu null. Uděláte to tak, že v nabídce Projekt kliknete na Vlastnosti projektu a potom vymažete položku kořenového oboru názvů, aby bylo pole prázdné. Pokud jste to neudělali v obecném příkladu třídy seznamu, kompilátor jazyka Visual Basic by se použil System.Collections.Generic
jako nový obor názvů v rámci projektu Payroll
, s úplným názvem Payroll.System.Collections.Generic
.
Případně můžete pomocí klíčového Global
slova odkazovat na prvky oborů názvů definovaných mimo váš projekt. To vám umožní zachovat název projektu jako kořenový obor názvů. Tím se sníží pravděpodobnost neúmyslného sloučení programovacích prvků společně s existujícími obory názvů. Další informace najdete v části Globální klíčové slovo v plně kvalifikovaných názvech v oborech názvů v jazyce Visual Basic.
Klíčové Global
slovo lze použít také v příkazu Oboru názvů. Díky tomu můžete definovat obor názvů mimo kořenový obor názvů projektu. Další informace najdete v části Globální klíčové slovo v příkazech oboru názvů v názvech v jazyce Visual Basic.
Řešení potíží. Kořenový obor názvů může vést k neočekávaným zřetězení názvů názvů. Pokud odkazujete na obory názvů definované mimo váš projekt, kompilátor jazyka Visual Basic je může považovat za vnořené obory názvů v kořenovém oboru názvů. V takovém případě kompilátor nerozpozná žádné typy, které už byly definovány v externích oborech názvů. Abyste tomu předešli, nastavte kořenový obor názvů na hodnotu null, jak je popsáno v části Kořenový obor názvů, nebo použijte Global
klíčové slovo pro přístup k prvkům externích oborů názvů.
Atributy a modifikátory
U oboru názvů nelze použít atributy. Atribut přispívá k informacím o metadatech sestavení, což není smysluplné pro zdrojové klasifikátory, jako jsou obory názvů.
U oboru názvů nelze použít žádné modifikátory přístupu ani procedury ani žádné jiné modifikátory. Protože to není typ, tyto modifikátory nejsou smysluplné.
Příklad 1
Následující příklad deklaruje dva obory názvů, jeden vnořený do druhého.
Namespace n1
Namespace n2
Class a
' Insert class definition.
End Class
End Namespace
End Namespace
Příklad 2
Následující příklad deklaruje více 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 ke 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 System.Collections.Generic oboru 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