Sdílet prostřednictvím


Postupy: Řízení rozsahu proměnné (Visual Basic)

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í a ukončovací deklarace prohlášení tohoto bloku, například mezi For příkazy smyčky a Next příkazy smyčky For .

    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říklad Withblok ...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 oboru názvů

Pro usnadnění činnosti platí stejná úroveň modulu s jedním termínem 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

  1. Dim Umístěte příkaz pro proměnnou uvnitř modulu, třídy nebo struktury, ale mimo jakoukoli proceduru.

  2. Do příkazu zahrňte klíčové slovo Dim Private.

  3. Proměnnou můžete odkazovat odkudkoliv v modulu, třídě nebo struktuře, ale ne mimo ni.

Zobrazení proměnné v celém oboru názvů

  1. Dim Umístěte příkaz pro proměnnou uvnitř modulu, třídy nebo struktury, ale mimo jakoukoli proceduru.

  2. Do příkazu zahrňte klíčové slovo Dim Friend nebo Public.

  3. 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 StringstrMsg. usePrivateVariable Při volání procedury se zobrazí obsah řetězcové proměnné strMsg v dialogovém okně.

S následující změnou předchozího příkladu lze řetězcovou proměnnou strMsg odkazovat kódem kdekoli v oboru názvů jeho deklarace.

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 může zneužit.

Viz také