Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Za normálních okolností je proměnná v oboru nebo viditelná pro referenci v celé oblasti, ve které ji deklarujete. V některých případech může úroveň přístupu proměnné ovlivnit její rozsah.
Další informace naleznete v tématu Obor v jazyce Visual Basic.
Rozsah na úrovni bloku nebo procedury
Zobrazení proměnné pouze v rámci bloku
Umístěte příkaz Dim pro proměnnou mezi iniciačním a ukončovacím příkazem deklarace tohoto bloku, například mezi
For
aNext
v rámci smyčkyFor
.Na proměnnou můžete odkazovat pouze v rámci bloku.
Zobrazení proměnné pouze v rámci procedury
Dim
Umístěte příkaz pro proměnnou uvnitř procedury, ale mimo jakýkoli blok (napříkladWith
blok ...End With
).Na proměnnou můžete odkazovat pouze v rámci procedury, včetně uvnitř jakéhokoli bloku obsaženého v postupu.
Rozsah na úrovni modulu nebo prostoru názvů
Pro pohodlí se termín úroveň modulu stejně používá pro moduly, třídy a struktury. Úroveň přístupu proměnné na úrovni modulu určuje její rozsah. Obor názvů, který obsahuje modul, třídu nebo strukturu, má vliv také na obor.
Zobrazení proměnné v celém modulu, třídě nebo struktuře
Dim
Umístěte příkaz pro proměnnou uvnitř modulu, třídy nebo struktury, ale mimo jakoukoli proceduru.Do příkazu zahrňte klíčové slovo
Dim
Private.Proměnnou můžete odkazovat odkudkoliv v modulu, třídě nebo struktuře, ale ne mimo ni.
Aby byla proměnná viditelná v celém oboru názvů
Dim
Umístěte příkaz pro proměnnou uvnitř modulu, třídy nebo struktury, ale mimo jakoukoli proceduru.Do příkazu zahrňte klíčové slovo Friend nebo
Dim
.Na proměnnou můžete odkazovat odkudkoliv v oboru názvů obsahujícího modul, třídu nebo strukturu.
Příklad
Následující příklad deklaruje proměnnou na úrovni modulu a omezuje její viditelnost na kód v rámci modulu.
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
V předchozím příkladu mohou všechny postupy definované v modulu demonstrateScope
odkazovat na proměnnou String
strMsg
.
usePrivateVariable
Při volání procedury se zobrazí obsah řetězcové proměnné strMsg
v dialogovém okně.
S následující úpravou předchozího příkladu lze řetězcovou proměnnou strMsg
odkázat pomocí svého kódu kdekoli v oboru názvů, kde je deklarována.
Public strMsg As String
Robustní programování
Čím užší je rozsah proměnné, tím méně příležitostí, které máte pro náhodné odkazování na jinou proměnnou se stejným názvem. Můžete také minimalizovat problémy s porovnávání odkazů.
Zabezpečení rozhraní .NET Framework
Čím užší je rozsah proměnné, tím menší je pravděpodobnost, že škodlivý kód ji může nesprávně použít.