Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Normalt är en variabel i omfånget, eller synlig som referens, i hela regionen där du deklarerar den. I vissa fall kan variabelns åtkomstnivå påverka dess omfång.
Mer information finns i Omfång i Visual Basic.
Omfång på block- eller procedurnivå
Att göra en variabel synlig endast inom ett block
Placera Dim-instruktionen för variabeln mellan de inledande och avslutande deklarationssatserna i det blocket, till exempel mellan satserna
For
ochNext
i enFor
-loop.Du kan bara referera till variabeln inifrån blocket.
Så här gör du bara en variabel synlig inom en procedur
Placera -instruktionen
Dim
för variabeln i proceduren men utanför alla block (till exempel ettWith
...End With
block).Du kan bara referera till variabeln inifrån proceduren, inklusive i alla block som ingår i proceduren.
Omfång på modul- eller namnområdesnivå
För enkelhetens skull används termen modulnivå lika för moduler, klasser och strukturer. Åtkomstnivån för en modulnivåvariabel avgör dess omfång. Namnområdet som innehåller modulen, klassen eller strukturen påverkar också omfånget.
Så här gör du en variabel synlig i en modul, klass eller struktur
Placera -instruktionen
Dim
för variabeln i modulen, klassen eller strukturen, men utanför alla procedurer.Inkludera nyckelordet Privat i instruktionen
Dim
.Du kan referera till variabeln var som helst i modulen, klassen eller strukturen, men inte utanför den.
Så här gör du en variabel synlig i ett namnområde
Placera -instruktionen
Dim
för variabeln i modulen, klassen eller strukturen, men utanför alla procedurer.Inkludera nyckelordet Vän eller Offentligt i -instruktionen
Dim
.Du kan referera till variabeln var som helst i namnområdet som innehåller modulen, klassen eller strukturen.
Exempel
I följande exempel deklareras en variabel på modulnivå och dess synlighet begränsas till kod i modulen.
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
I föregående exempel kan alla procedurer som definierats i modulen demonstrateScope
referera till variabeln String
strMsg
. När proceduren usePrivateVariable
anropas visas innehållet i strängvariabeln strMsg
i en dialogruta.
Med följande ändring i föregående exempel kan strängvariabeln strMsg
refereras till med kod var som helst i namnområdet för deklarationen.
Public strMsg As String
Robust Programmering
Ju smalare omfånget för en variabel är, desto färre möjligheter har du att oavsiktligt referera till den istället för en annan variabel med samma namn. Du kan också minimera problem med referensmatchning.
.NET Framework-säkerhet
Ju smalare omfånget för en variabel är, desto mindre är risken för att skadlig kod kan använda den felaktigt.