Namespace — Instrukcja
Deklaruje nazwę przestrzeni nazw i powoduje, że kod źródłowy, który jest zgodny z deklaracją, która ma zostać skompilowana w tej przestrzeni nazw.
Składnia
Namespace [Global.] { name | name.name }
[ componenttypes ]
End Namespace
generatora
Opcjonalne globalne. Umożliwia zdefiniowanie przestrzeni nazw poza przestrzeń nazw głównego projektu. Zobacz Przestrzenie nazw w Visual Basic.
name
Wymagane. Unikatowa nazwa identyfikująca przestrzeń nazw. Musi być prawidłowym identyfikatorem języka Visual Basic. Aby uzyskać więcej informacji, zobacz Deklarowane nazwy elementów.
componenttypes
Opcjonalne. Elementy tworzące przestrzeń nazw. Należą do nich m.in. wyliczenia, struktury, interfejsy, klasy, moduły, delegaty i inne przestrzenie nazw.
End Namespace
Namespace
Przerywa blok.
Uwagi
Przestrzenie nazw są używane jako system organizacyjny. Zapewniają one sposób klasyfikowania i prezentowania elementów programowania, które są widoczne dla innych programów i aplikacji. Należy pamiętać, że przestrzeń nazw nie jest typem klasy lub struktury — nie można zadeklarować elementu programowania, aby mieć typ danych przestrzeni nazw.
Wszystkie elementy programowania zadeklarowane po instrukcji Namespace
należą do tej przestrzeni nazw. Program Visual Basic nadal kompiluje elementy do ostatniej zadeklarowanej przestrzeni nazw, dopóki nie napotka End Namespace
instrukcji lub innej Namespace
instrukcji.
Jeśli przestrzeń nazw jest już zdefiniowana, nawet poza projektem, możesz do niej dodać elementy programowania. W tym celu użyjesz instrukcji , Namespace
aby skompilować elementy w tej przestrzeni nazw za pomocą instrukcji Visual Basic.
Instrukcję Namespace
można używać tylko na poziomie pliku lub przestrzeni nazw. Oznacza to, że kontekst deklaracji przestrzeni nazw musi być plikiem źródłowym lub inną przestrzenią nazw i nie może być klasą, strukturą, modułem, interfejsem lub procedurą. Aby uzyskać więcej informacji, zobacz Konteksty deklaracji i Domyślne poziomy dostępu.
Można zadeklarować jedną przestrzeń nazw w innej. Nie ma ścisłego ograniczenia poziomów zagnieżdżania, które można zadeklarować, ale pamiętaj, że gdy inny kod uzyskuje dostęp do elementów zadeklarowanych w najbardziej wewnętrznej przestrzeni nazw, musi użyć ciągu kwalifikacji zawierającego wszystkie nazwy przestrzeni nazw w hierarchii zagnieżdżania.
Poziom dostępu
Przestrzenie nazw są traktowane tak, jakby miały Public
poziom dostępu. Dostęp do przestrzeni nazw można uzyskać z kodu w dowolnym miejscu w tym samym projekcie, z innych projektów, które odwołują się do projektu, oraz z dowolnego zestawu utworzonego z projektu.
Elementy programowania zadeklarowane na poziomie przestrzeni nazw, co oznacza, że w przestrzeni nazw, ale nie wewnątrz żadnego innego elementu, mogą mieć Public
dostęp lub Friend
uzyskać do niego dostęp. Jeśli nie określono, poziom dostępu takiego elementu jest domyślnie używany Friend
. Elementy, które można zadeklarować na poziomie przestrzeni nazw, obejmują klasy, struktury, moduły, interfejsy, wyliczenia i delegaty. Aby uzyskać więcej informacji, zobacz Konteksty deklaracji i Domyślne poziomy dostępu.
Główna przestrzeń nazw
Wszystkie nazwy przestrzeni nazw w projekcie są oparte na głównej przestrzeni nazw. Program Visual Studio przypisuje nazwę projektu jako domyślną przestrzeń nazw katalogu głównego dla całego kodu w projekcie. Jeśli na przykład projekt ma nazwę Payroll
, jego elementy programowania należą do przestrzeni nazw Payroll
. W przypadku deklarowania Namespace funding
pełnej nazwy tej przestrzeni nazw to Payroll.funding
.
Jeśli chcesz określić istniejącą przestrzeń nazw w Namespace
instrukcji, na przykład w przykładzie klasy listy ogólnej, możesz ustawić przestrzeń nazw katalogu głównego na wartość null. W tym celu kliknij pozycję Właściwości projektu z menu Project, a następnie wyczyść wpis Root namespace (Główna przestrzeń nazw), aby pole było puste. Jeśli nie zrobisz tego w przykładzie klasy ogólnej listy, kompilator języka Visual Basic będzie przyjmować System.Collections.Generic
jako nową przestrzeń nazw w projekcie Payroll
z pełną nazwą Payroll.System.Collections.Generic
.
Alternatywnie możesz użyć słowa kluczowego Global
, aby odwoływać się do elementów przestrzeni nazw zdefiniowanych poza projektem. Dzięki temu można zachować nazwę projektu jako przestrzeń nazw katalogu głównego. Zmniejsza to prawdopodobieństwo przypadkowego scalenia elementów programowania wraz z istniejącymi przestrzeniami nazw. Aby uzyskać więcej informacji, zobacz sekcję "Globalne słowo kluczowe w w pełni kwalifikowanych nazw" w przestrzeniach nazw w Visual Basic.
Słowo Global
kluczowe może być również używane w instrukcji Przestrzeni nazw. Dzięki temu można zdefiniować przestrzeń nazw poza przestrzeń nazw katalogu głównego projektu. Aby uzyskać więcej informacji, zobacz sekcję "Globalne słowo kluczowe w instrukcjach przestrzeni nazw" w przestrzeni nazw w Visual Basic.
Rozwiązywanie problemów. Główna przestrzeń nazw może prowadzić do nieoczekiwanego łączenia nazw przestrzeni nazw. Jeśli odwołujesz się do przestrzeni nazw zdefiniowanych poza projektem, kompilator języka Visual Basic może interpretować je jako zagnieżdżone przestrzenie nazw w głównej przestrzeni nazw. W takim przypadku kompilator nie rozpoznaje żadnych typów, które zostały już zdefiniowane w zewnętrznych przestrzeniach nazw. Aby tego uniknąć, ustaw przestrzeń nazw katalogu głównego na wartość null zgodnie z opisem w sekcji "Główna przestrzeń nazw" lub użyj Global
słowa kluczowego , aby uzyskać dostęp do elementów zewnętrznych przestrzeni nazw.
Atrybuty i modyfikatory
Nie można zastosować atrybutów do przestrzeni nazw. Atrybut przyczynia się do informacji o metadanych zestawu, co nie jest istotne dla klasyfikatorów źródłowych, takich jak przestrzenie nazw.
Nie można zastosować żadnych modyfikatorów dostępu ani procedur ani innych modyfikatorów do przestrzeni nazw. Ponieważ nie jest to typ, modyfikatory te nie mają znaczenia.
Przykład 1
W poniższym przykładzie deklarowane są dwie przestrzenie nazw, jedna zagnieżdżona w drugiej.
Namespace n1
Namespace n2
Class a
' Insert class definition.
End Class
End Namespace
End Namespace
Przykład 2
W poniższym przykładzie zadeklarowano wiele zagnieżdżonych przestrzeni nazw w jednym wierszu i jest to odpowiednik poprzedniego przykładu.
Namespace n1.n2
Class a
' Insert class definition.
End Class
End Namespace
Przykład 3
Poniższy przykład uzyskuje dostęp do klasy zdefiniowanej w poprzednich przykładach.
Dim instance As New n1.n2.a
Przykład 4
Poniższy przykład definiuje szkielet nowej klasy listy ogólnej i dodaje go do System.Collections.Generic przestrzeni nazw.
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