Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A változók általában hatókörben vagy referenciaként láthatók az egész régióban, amelyben deklarálják. Bizonyos esetekben a változó hozzáférési szintje befolyásolhatja a hatókörét.
További információ: Hatókör a Visual Basicben.
Hatókör blokk- vagy eljárásszinten
Változó csak egy blokkon belül láthatóvá tétele
Helyezze a Dim utasítást a blokk kezdeti és záró deklarációs utasításai közé, például a
ForésNextutasítások közé egyForcikluson belül.A változóra csak a blokkból hivatkozhat.
Változó csak egy eljáráson belül láthatóvá tétele
Helyezze el a
Dimváltozó utasítását az eljáráson belül, de bármely blokkon kívül (példáulWith...End Withblokkon).A változóra csak az eljáráson belül hivatkozhat, beleértve az eljárásban található blokkokat is.
Hatókör modul- vagy névtérszinten
A kényelem érdekében az egykifejezéses modulszint egyformán vonatkozik a modulokra, osztályokra és struktúrákra. A modulszintű változó hozzáférési szintje határozza meg a hatókörét. A modult, osztályt vagy struktúrát tartalmazó névtér is befolyásolja a hatókört.
Változó láthatóvá tétele egy modulban, osztályban vagy struktúrában
Helyezze a
Dimváltozó utasítását a modulba, az osztályba vagy a struktúrába, de bármilyen eljáráson kívül.Adja meg a privát kulcsszót az
Dimutasításban.A változót a modulon, az osztályon vagy a struktúrán belül bárhonnan megtekintheti, kívülről azonban nem.
Változó láthatóvá tétele a névtérben
Helyezze a
Dimváltozó utasítását a modulba, az osztályba vagy a struktúrába, de bármilyen eljáráson kívül.Adja meg a Barát vagy a Nyilvános kulcsszót az
Dimutasításban.A változóra a modult, osztályt vagy struktúrát tartalmazó névtéren belül bárhonnan hivatkozhat.
példa
Az alábbi példa egy változót deklarál modulszinten, és a modulon belüli kódra korlátozza annak láthatóságát.
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
Az előző példában a modulban demonstrateScope definiált összes eljárás hivatkozhat a String változóra strMsg.
usePrivateVariable Az eljárás meghívásakor megjeleníti a sztringváltozó strMsg tartalmát egy párbeszédpanelen.
Az előző példában az alábbi módosítással a sztringváltozó strMsg kóddal hivatkozható a deklaráció névterében.
Public strMsg As String
Robusztus programozás
Minél szűkebb a változó hatóköre, annál kevesebb lehetősége van arra, hogy véletlenül egy másik azonos nevű változó helyett hivatkozik rá. A hivatkozás-egyeztetés problémáit is minimalizálhatja.
.NET-keretrendszer biztonsága
Minél szűkebb egy változó hatóköre, annál kisebb az esélye annak, hogy a rosszindulatú kód helytelenül használja azt.