Procedure: Het bereik van een variabele beheren (Visual Basic)
Normaal gesproken is een variabele binnen het bereik of zichtbaar voor referentie, in de regio waarin u deze declareert. In sommige gevallen kan het toegangsniveau van de variabele van invloed zijn op het bereik.
Zie Bereik in Visual Basic voor meer informatie.
Bereik op blok- of procedureniveau
Een variabele alleen zichtbaar maken binnen een blok
Plaats de Dim-instructie voor de variabele tussen de initiërende en afsluitdeclaratie-instructies van dat blok, bijvoorbeeld tussen de en
Next
instructiesFor
van eenFor
lus.U kunt alleen vanuit het blok naar de variabele verwijzen.
Een variabele alleen zichtbaar maken binnen een procedure
Plaats de
Dim
instructie voor de variabele binnen de procedure, maar buiten een blok (zoals eenWith
...End With
blok).U kunt alleen vanuit de procedure naar de variabele verwijzen, ook binnen een blok in de procedure.
Bereik op module- of naamruimteniveau
Voor het gemak geldt het moduleniveau voor één term evenzeer voor modules, klassen en structuren. Het toegangsniveau van een variabele op moduleniveau bepaalt het bereik. De naamruimte die de module, klasse of structuur bevat, heeft ook invloed op het bereik.
Een variabele zichtbaar maken in een module, klasse of structuur
Plaats de
Dim
instructie voor de variabele in de module, klasse of structuur, maar buiten een procedure.Neem het persoonlijke trefwoord op in de
Dim
instructie.U kunt overal in de module, klasse of structuur verwijzen naar de variabele, maar niet van buiten de variabele.
Een variabele zichtbaar maken in een naamruimte
Plaats de
Dim
instructie voor de variabele in de module, klasse of structuur, maar buiten een procedure.Neem het trefwoord Vriend of Openbaar op in de
Dim
instructie.U kunt overal in de naamruimte verwijzen naar de variabele die de module, klasse of structuur bevat.
Opmerking
Het volgende voorbeeld declareert een variabele op moduleniveau en beperkt de zichtbaarheid van code in de module.
Module demonstrateScope
Private strMsg As String
Sub initializePrivateVariable()
strMsg = "This variable cannot be used outside this module."
End Sub
Sub usePrivateVariable()
MsgBox(strMsg)
End Sub
End Module
In het voorgaande voorbeeld kunnen alle procedures die in de module demonstrateScope
zijn gedefinieerd, verwijzen naar de String
variabele strMsg
. Wanneer de usePrivateVariable
procedure wordt aangeroepen, wordt de inhoud van de tekenreeksvariabele strMsg
weergegeven in een dialoogvenster.
Met de volgende wijziging in het voorgaande voorbeeld kan de tekenreeksvariabele overal in de naamruimte van de declaratie naar de tekenreeksvariabele strMsg
worden verwezen.
Public strMsg As String
Robuuste programmering
Hoe kleiner het bereik van een variabele, hoe minder mogelijkheden u hebt om per ongeluk naar de variabele te verwijzen in plaats van een andere variabele met dezelfde naam. U kunt ook problemen met verwijzingskoppeling minimaliseren.
.NET Framework-beveiliging
Hoe kleiner het bereik van een variabele, hoe kleiner de kans dat schadelijke code er onjuist gebruik van kan maken.