Share via


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 instructies For van een For 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 een With...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

  1. Plaats de Dim instructie voor de variabele in de module, klasse of structuur, maar buiten een procedure.

  2. Neem het persoonlijke trefwoord op in de Dim instructie.

  3. 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

  1. Plaats de Dim instructie voor de variabele in de module, klasse of structuur, maar buiten een procedure.

  2. Neem het trefwoord Vriend of Openbaar op in de Dim instructie.

  3. 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.

Zie ook