Udostępnij za pośrednictwem


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 NamespaceNamespace 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 fundingpeł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 Payrollz 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

Zobacz też