Névtérutasítás

Deklarálja egy névtér nevét, és a deklarációt követő forráskódot az adott névtérben fordítja le.

Syntax

Namespace [Global.] { name | name.name }
    [ componenttypes ]
End Namespace

Részek

Globálisan nem kötelező. Lehetővé teszi, hogy a projekt gyökérnévterén kívül definiáljon egy névteret. Lásd a Visual Basic névtereit.

name Szükséges. A névteret azonosító egyedi név. Érvényes Visual Basic-azonosítónak kell lennie. További információ: Deklarált elemnevek.

componenttypes Választható. A névteret alkotó elemek. Ezek közé tartoznak többek között az enumerálások, struktúrák, interfészek, osztályok, modulok, meghatalmazottak és egyéb névterek.

End Namespace Leállítja a blokkot Namespace .

Megjegyzések

A névterek szervezeti rendszerként használatosak. Lehetővé teszik a más programok és alkalmazások számára elérhető programozási elemek besorolását és bemutatását. Vegye figyelembe, hogy a névtér nem olyan típus , mint az osztály vagy a struktúra – nem deklarálhat programozási elemet úgy, hogy a névtér adattípusa legyen.

Az utasítás után Namespace deklarált összes programozási elem az adott névtérhez tartozik. A Visual Basic továbbra is az utolsó deklarált névtérbe fordítja az elemeket, amíg egy utasításhoz vagy egy másik Namespace utasításhoz nem ütközikEnd Namespace.

Ha már definiált egy névteret, akár a projekten kívül is, programozási elemeket is hozzáadhat hozzá. Ehhez utasítással Namespace utasíthatja a Visual Basicet, hogy elemeket fordítson az adott névtérbe.

Utasítást Namespace csak a fájl vagy a névtér szintjén használhat. Ez azt jelenti, hogy a névtér deklarációs környezetének forrásfájlnak vagy más névtérnek kell lennie, és nem lehet osztály, struktúra, modul, felület vagy eljárás. További információ: Deklarációs környezetek és alapértelmezett hozzáférési szintek.

Deklarálhat egy névteret egy másikon belül. A beágyazási szintekre nincs szigorú korlát, de ne feledje, hogy amikor más kód hozzáfér a legbelső névtérben deklarált elemekhez, egy olyan minősítési sztringet kell használnia, amely tartalmazza a beágyazott hierarchiában lévő összes névtérnevet.

Hozzáférési szint

A névterek úgy vannak kezelve, mintha hozzáférési szinttel rendelkeznének Public . A névterek a kódból bárhonnan elérhetők ugyanabban a projektben, a projektre hivatkozó más projektekből és a projektből létrehozott bármely szerelvényből.

A névtér szintjén deklarált programozási elemek, vagyis egy névtérben, de más elemen belül nem, rendelkezhetnek vagy Friend hozzáférhetnekPublic. Ha nincs meghatározva, az ilyen elem hozzáférési szintje alapértelmezés szerint használ Friend . A névtér szintjén deklarálható elemek közé tartoznak az osztályok, struktúrák, modulok, interfészek, enumerálások és meghatalmazottak. További információ: Deklarációs környezetek és alapértelmezett hozzáférési szintek.

Gyökérnévtér

A projekt összes névterének neve gyökérnévtéren alapul. A Visual Studio a projekt összes kódjához alapértelmezett gyökérnévtérként rendeli hozzá a projekt nevét. Ha például a projekt neve el van nevezve Payroll, a programozási elemei a névtérhez Payrolltartoznak. Ha deklaráljaNamespace funding, a névtér teljes neve .Payroll.funding

Ha meg szeretne adni egy meglévő névteret egy Namespace utasításban, például az általános listaosztály példájában, a gyökérnévteret null értékre állíthatja. Ehhez kattintson a Projekt menü Projekttulajdonságok elemére, majd törölje a gyökérnévtér bejegyzésének törlését, hogy a mező üres legyen. Ha ezt nem az általános listaosztály példájában tette meg, a Visual Basic fordító új névtérként jelenik System.Collections.Generic meg a projekten Payrollbelül, a teljes névvel Payroll.System.Collections.Genericegyütt.

A kulcsszóval Global a projekten kívül definiált névterek elemeire is hivatkozhat. Ezzel lehetővé teszi a projektnév gyökérnévtérként való megőrzését. Ez csökkenti a programozási elemek és a meglévő névterek véletlen egyesítésének esélyét. További információkért lásd a Visual Basic névtereiben a "Globális kulcsszó teljes névvel" című szakaszt.

A Global kulcsszó névtérutasításban is használható. Ez lehetővé teszi, hogy a projekt gyökérnévterén kívül definiáljon egy névteret. További információ: "Globális kulcsszó a névtér-utasításokban" szakasz a Visual Basic névtereiben.

Hibaelhárítás. A gyökérnévtér a névtérnevek váratlan összefűzéséhez vezethet. Ha a projekten kívül definiált névterekre hivatkozik, a Visual Basic fordító beágyazott névtérként értelmezheti őket a gyökérnévtérben. Ilyen esetben a fordító nem ismeri fel a külső névterekben már definiált típusokat. Ennek elkerülése érdekében állítsa a gyökérnévteret null értékre a "Gyökérnévtér" szakaszban leírtak szerint, vagy használja a kulcsszót a Global külső névterek elemeinek eléréséhez.

Attribútumok és módosítók

Attribútumok nem alkalmazhatók névtérre. Az attribútumok információkat adnak a szerelvény metaadataihoz, ami nem értelmezhető a forrásosztályozók, például a névterek számára.

Névtérre nem alkalmazhat hozzáférés- vagy eljárásmódosítókat vagy más módosítókat. Mivel ez nem típus, ezek a módosítók nem értelmezhetők.

1. példa

Az alábbi példa két névteret deklarál, az egyik beágyazott a másikba.

Namespace n1
    Namespace n2
        Class a
            ' Insert class definition.
        End Class
    End Namespace
End Namespace

2. példa

Az alábbi példa több beágyazott névteret deklarál egyetlen sorban, és egyenértékű az előző példával.

Namespace n1.n2
    Class a
        ' Insert class definition.
    End Class
End Namespace

3. példa

Az alábbi példa az előző példákban definiált osztályhoz fér hozzá.

Dim instance As New n1.n2.a

4. példa

Az alábbi példa egy új általános listaosztály csontvázát határozza meg, és hozzáadja a System.Collections.Generic névtérhez.

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

Lásd még