Naamruimte-instructie
Declareert de naam van een naamruimte en zorgt ervoor dat de broncode die volgt op de declaratie wordt gecompileerd binnen die naamruimte.
Syntaxis
Namespace [Global.] { name | name.name }
[ componenttypes ]
End Namespace
generator
Algemeen optioneel. Hiermee kunt u een naamruimte definiëren buiten de hoofdnaamruimte van uw project. Zie naamruimten in Visual Basic.
name
Vereist. Een unieke naam die de naamruimte identificeert. Moet een geldige Visual Basic-id zijn. Zie Gedeclareerde elementnamen voor meer informatie.
componenttypes
Optionele. Elementen waaruit de naamruimte bestaat. Deze omvatten, maar zijn niet beperkt tot, opsommingen, structuren, interfaces, klassen, modules, gedelegeerden en andere naamruimten.
End Namespace
Hiermee wordt een Namespace
blok beëindigd.
Opmerkingen
Naamruimten worden gebruikt als een organisatiesysteem. Ze bieden een manier om programmeerelementen te classificeren en presenteren die beschikbaar zijn voor andere programma's en toepassingen. Houd er rekening mee dat een naamruimte geen type is in de zin dat een klasse of structuur is. U kunt geen programmeerelement declareren om het gegevenstype van een naamruimte te hebben.
Alle programmeerelementen die na een Namespace
instructie zijn gedeclareerd, behoren tot die naamruimte. Visual Basic blijft elementen compileren in de laatst gedeclareerde naamruimte totdat deze een End Namespace
instructie of een andere Namespace
instructie tegenkomt.
Als er al een naamruimte is gedefinieerd, zelfs buiten uw project, kunt u er programmeerelementen aan toevoegen. Hiervoor gebruikt u een Namespace
instructie om Visual Basic om te leiden om elementen in die naamruimte te compileren.
U kunt een Namespace
instructie alleen gebruiken op bestand- of naamruimteniveau. Dit betekent dat de declaratiecontext voor een naamruimte een bronbestand of een andere naamruimte moet zijn en geen klasse, structuur, module, interface of procedure kan zijn. Zie Declaratiecontexten en standaardtoegangsniveaus voor meer informatie.
U kunt één naamruimte binnen een andere declareren. Er is geen strikte limiet voor de geneste niveaus die u kunt declareren, maar onthoud dat wanneer andere code toegang heeft tot de elementen die zijn gedeclareerd in de binnenste naamruimte, een kwalificatietekenreeks moet gebruiken die alle naamruimtenamen in de geneste hiërarchie bevat.
Toegangsniveau
Naamruimten worden behandeld alsof ze een Public
toegangsniveau hebben. Een naamruimte kan worden geopend vanuit code overal in hetzelfde project, vanuit andere projecten die verwijzen naar het project en vanuit elke assembly die is gebouwd op basis van het project.
Programmeerelementen die zijn gedeclareerd op naamruimteniveau, wat betekent dat in een naamruimte, maar niet binnen een ander element, toegang heeft Public
of Friend
heeft. Indien niet opgegeven, wordt het toegangsniveau van een dergelijk element standaard gebruikt Friend
. Elementen die u op naamruimteniveau kunt declareren, zijn klassen, structuren, modules, interfaces, opsommingen en gemachtigden. Zie Declaratiecontexten en standaardtoegangsniveaus voor meer informatie.
Hoofdnaamruimte
Alle naamruimtenamen in uw project zijn gebaseerd op een hoofdnaamruimte. Visual Studio wijst uw projectnaam toe als de standaardhoofdnaamruimte voor alle code in uw project. Als uw project bijvoorbeeld een naam Payroll
heeft, behoren de programmeerelementen ervan tot de naamruimte Payroll
. Als u declareert Namespace funding
, is Payroll.funding
de volledige naam van die naamruimte.
Als u een bestaande naamruimte in een Namespace
instructie wilt opgeven, zoals in het algemene voorbeeld van de lijstklasse, kunt u de hoofdnaamruimte instellen op een null-waarde. Als u dit wilt doen, klikt u in het menu Project op Project-eigenschappen en schakelt u de vermelding van de hoofdnaamruimte uit, zodat het vak leeg is. Als u dit niet hebt gedaan in het algemene voorbeeld van de lijstklasse, zou de Visual Basic-compiler als een nieuwe naamruimte binnen het project worden gebruiktSystem.Collections.Generic
, met de volledige naam van Payroll.System.Collections.Generic
.Payroll
U kunt ook het Global
trefwoord gebruiken om te verwijzen naar elementen van naamruimten die buiten uw project zijn gedefinieerd. Hierdoor kunt u uw projectnaam behouden als de hoofdnaamruimte. Dit vermindert de kans dat u uw programmeerelementen onbedoeld samenvoegt met die van bestaande naamruimten. Zie de sectie Global Keyword in Fully Qualified Names in Namespaces in Visual Basic voor meer informatie.
Het Global
trefwoord kan ook worden gebruikt in een Naamruimte-instructie. Hiermee kunt u een naamruimte definiëren buiten de hoofdnaamruimte van uw project. Zie de sectie Algemeen trefwoord in naamruimte-instructies in naamruimten in Visual Basic voor meer informatie.
Probleemoplossing. De hoofdnaamruimte kan leiden tot onverwachte samenvoegingen van naamruimtenamen. Als u verwijst naar naamruimten die buiten uw project zijn gedefinieerd, kan de Visual Basic-compiler ze interpreteren als geneste naamruimten in de hoofdnaamruimte. In dat geval herkent de compiler geen typen die al zijn gedefinieerd in de externe naamruimten. U kunt dit voorkomen door uw hoofdnaamruimte in te stellen op een null-waarde, zoals beschreven in 'Hoofdnaamruimte', of gebruik het Global
trefwoord om toegang te krijgen tot elementen van externe naamruimten.
Kenmerken en modifiers
U kunt geen kenmerken toepassen op een naamruimte. Een kenmerk draagt informatie bij aan de metagegevens van de assembly, wat niet zinvol is voor bronclassificaties, zoals naamruimten.
U kunt geen toegangs- of proceduremodifiers, of andere modifiers, toepassen op een naamruimte. Omdat het geen type is, zijn deze modifiers niet zinvol.
Voorbeeld 1
In het volgende voorbeeld worden twee naamruimten declareren, één geneste in de andere.
Namespace n1
Namespace n2
Class a
' Insert class definition.
End Class
End Namespace
End Namespace
Voorbeeld 2
In het volgende voorbeeld worden meerdere geneste naamruimten op één regel declareerd en dit is gelijk aan het vorige voorbeeld.
Namespace n1.n2
Class a
' Insert class definition.
End Class
End Namespace
Voorbeeld 3
In het volgende voorbeeld wordt de klasse geopend die in de vorige voorbeelden is gedefinieerd.
Dim instance As New n1.n2.a
Voorbeeld 4
In het volgende voorbeeld wordt het skelet van een nieuwe algemene lijstklasse gedefinieerd en toegevoegd aan de System.Collections.Generic naamruimte.
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