Share via


Toegangsniveaus in Visual Basic

Het toegangsniveau van een gedeclareerd element is de mate van toegang tot het element, dat wil weten welke code is gemachtigd om het te lezen of ernaar te schrijven. Dit wordt niet alleen bepaald door de wijze waarop u het element zelf declareert, maar ook door het toegangsniveau van de container van het element. Code die geen toegang heeft tot een element dat een element bevat, heeft geen toegang tot een van de ingesloten elementen, zelfs de elementen die zijn gedeclareerd als Public. Een variabele in een Private structuur kan bijvoorbeeld Public worden geopend vanuit de klasse die de structuur bevat, maar niet van buiten die klasse.

Openbaar

Het openbare trefwoord in de declaratieinstructie geeft aan dat het element toegankelijk is vanuit code overal in hetzelfde project, uit andere projecten die verwijzen naar het project en vanuit elke assembly die is gebouwd op basis van het project. De volgende code toont een voorbeelddeclaratie Public :

Public Class ClassForEverybody

U kunt alleen op module-, interface- of naamruimteniveau gebruiken Public . Dit betekent dat u een openbaar element kunt declareren op het niveau van een bronbestand of naamruimte, of in een interface, module, klasse of structuur, maar niet in een procedure.

Beveiligd

Het trefwoord Beveiligd in de declaratie-instructie geeft aan dat het element alleen toegankelijk is vanuit dezelfde klasse of van een klasse die is afgeleid van deze klasse. De volgende code toont een voorbeelddeclaratie Protected :

Protected Class ClassForMyHeirs

U kunt alleen op klasniveau gebruiken Protected en alleen wanneer u een lid van een klasse declareert. Dit betekent dat u een beveiligd element in een klasse kunt declareren, maar niet op het niveau van een bronbestand of naamruimte, of in een interface, module, structuur of procedure.

Vriend

Het trefwoord Vriend in de declaratie-instructie geeft aan dat het element toegankelijk is vanuit dezelfde assembly, maar niet van buiten de assembly. De volgende code toont een voorbeelddeclaratie Friend :

Friend stringForThisProject As String

U kunt alleen op module-, interface- of naamruimteniveau gebruiken Friend . Dit betekent dat u een vriend-element kunt declareren op het niveau van een bronbestand of naamruimte, of in een interface, module, klasse of structuur, maar niet in een procedure.

Beveiligde vriend

De combinatie van het trefwoord Beveiligde vriend in de declaratie-instructie geeft aan dat het element kan worden geopend vanuit afgeleide klassen of vanuit dezelfde assembly, of beide. De volgende code toont een voorbeelddeclaratie Protected Friend :

Protected Friend stringForProjectAndHeirs As String

U kunt alleen op klasniveau gebruiken Protected Friend en alleen wanneer u een lid van een klasse declareert. Dit betekent dat u een beveiligd vriend-element in een klasse kunt declareren, maar niet op het niveau van een bronbestand of naamruimte, of in een interface, module, structuur of procedure.

Privé

Het sleutelwoord Privé in de declaratie-instructie geeft aan dat het element alleen toegankelijk is vanuit dezelfde module, klasse of structuur. De volgende code toont een voorbeelddeclaratie Private :

Private _numberForMeOnly As Integer

U kunt alleen op moduleniveau gebruiken Private . Dit betekent dat u een privé-element binnen een module, klasse of structuur kunt declareren, maar niet op het niveau van een bronbestand of naamruimte, in een interface of in een procedure.

Op moduleniveau is de Dim instructie zonder trefwoorden op toegangsniveau gelijk aan een Private declaratie. U kunt echter het Private trefwoord gebruiken om uw code gemakkelijker te lezen en te interpreteren.

Privé beveiligd

De combinatie van het trefwoord Privébeveiliging in de declaratie-instructie geeft aan dat het element alleen toegankelijk is vanuit dezelfde klasse, evenals van afgeleide klassen die in dezelfde assembly zijn gevonden als de betreffende klasse. De Private Protected toegangsaanpassing wordt ondersteund vanaf Visual Basic 15.5.

In het volgende voorbeeld ziet u een Private Protected declaratie:

Private Protected internalValue As Integer

U kunt een Private Protected element alleen binnen een klasse declareren. U kunt deze niet declareren binnen een interface of structuur, noch kunt u deze declareren op het niveau van een bronbestand of naamruimte, in een interface of een structuur, of in een procedure.

De Private Protected toegangsaanpassing wordt ondersteund door Visual Basic 15.5 en hoger. Als u dit wilt gebruiken, voegt u het volgende element toe aan het Visual Basic-projectbestand (*.vbproj). Zolang Visual Basic 15.5 of hoger op uw systeem is geïnstalleerd, kunt u profiteren van alle taalfuncties die worden ondersteund door de nieuwste versie van de Visual Basic-compiler:

<PropertyGroup>
   <LangVersion>latest</LangVersion>
</PropertyGroup>

Als u de Private Protected toegangsaanpassing wilt gebruiken, moet u het volgende element toevoegen aan uw Visual Basic-projectbestand (*.vbproj):

<PropertyGroup>
   <LangVersion>15.5</LangVersion>
</PropertyGroup>

Zie de versie van de Visual Basic-taal instellen voor meer informatie.

Toegangsmodifiers

De trefwoorden die toegangsniveau opgeven, worden toegangsaanpassingen genoemd. In de volgende tabel worden de toegangsaanpassingen vergeleken:

Wijzigingsfunctie voor toegang Toegangsniveau verleend Elementen die u met dit toegangsniveau kunt declareren Declaratiecontext waarin u deze wijzigingsfunctie kunt gebruiken
Public Onbeperkte:

Elke code die een openbaar element kan zien, heeft er toegang toe
Interfaces

Modules

Klassen

Structuren

Leden structuren

Procedures

Eigenschappen

Lidvariabelen

Constanten

Opsommingen

gebeurtenis

Externe declaraties

Gedelegeerden
Bronbestand

Naamruimte

Interface

Module

Klas

Structuur
Protected Derivational:

Code in de klasse die een beveiligd element declareert, of een klasse die ervan is afgeleid, heeft toegang tot het element
Interfaces

Klassen

Structuren

Procedures

Eigenschappen

Lidvariabelen

Constanten

Opsommingen

gebeurtenis

Externe declaraties

Gedelegeerden
Klas
Friend Vergadering:

Code in de assembly die een vriend-element declareert, kan er toegang toe krijgen
Interfaces

Modules

Klassen

Structuren

Leden structuren

Procedures

Eigenschappen

Lidvariabelen

Constanten

Opsommingen

gebeurtenis

Externe declaraties

Gedelegeerden
Bronbestand

Naamruimte

Interface

Module

Klas

Structuur
Protected Friend Samenvoeging van Protected en Friend:

Code in dezelfde klasse of dezelfde assembly als een beveiligd vriend-element, of binnen een klasse die is afgeleid van de klasse van het element, heeft er toegang toe
Interfaces

Klassen

Structuren

Procedures

Eigenschappen

Lidvariabelen

Constanten

Opsommingen

gebeurtenis

Externe declaraties

Gedelegeerden
Klas
Private Declaratiecontext:

Code in het type dat een privé-element declareert, inclusief code binnen ingesloten typen, heeft toegang tot het element
Interfaces

Klassen

Structuren

Leden structuren

Procedures

Eigenschappen

Lidvariabelen

Constanten

Opsommingen

gebeurtenis

Externe declaraties

Gedelegeerden
Module

Klas

Structuur
Private Protected Code in de klasse die een privé beveiligd element of code declareert in een afgeleide klasse die is gevonden in dezelfde assembly als de basklasse. Interfaces

Klassen

Structuren

Procedures

Eigenschappen

Lidvariabelen

Constanten

Opsommingen

gebeurtenis

Externe declaraties

Gedelegeerden
Klas

Zie ook