Porady: kontrolowanie zakresu zmiennej (Visual Basic)

Zwykle zmienna znajduje się w zakresie lub jest widoczna dla odwołania w całym regionie, w którym ją deklarujesz. W niektórych przypadkach poziom dostępu zmiennej może mieć wpływ na jej zakres.

Aby uzyskać więcej informacji, zobacz Temat Zakres w Visual Basic.

Zakres na poziomie bloku lub procedury

Aby ustawić zmienną widoczną tylko w bloku

  • Umieść instrukcję Dim dla zmiennej między instrukcjami inicjowania i zakończenia deklaracji tego bloku, na przykład między For instrukcjami For i Next pętli.

    Możesz odwołać się do zmiennej tylko z bloku.

Aby ustawić zmienną widoczną tylko w ramach procedury

  • Umieść instrukcję Dim zmiennej wewnątrz procedury, ale poza dowolnym blokiem With(takim jak blok ...End With ).

    Można odwołać się do zmiennej tylko z poziomu procedury, w tym wewnątrz dowolnego bloku zawartego w procedurze.

Zakres na poziomie modułu lub przestrzeni nazw

Dla wygody poziom modułu pojedynczego terminu ma zastosowanie w równym stopniu do modułów, klas i struktur. Poziom dostępu zmiennej poziomu modułu określa jego zakres. Przestrzeń nazw zawierająca moduł, klasę lub strukturę również wpływa na zakres.

Aby uwidocznić zmienną w module, klasie lub strukturze

  1. Umieść instrukcję Dim dla zmiennej wewnątrz modułu, klasy lub struktury, ale poza dowolną procedurą.

  2. Dołącz słowo kluczowe Private w instrukcji Dim .

  3. Możesz odwołać się do zmiennej z dowolnego miejsca w module, klasie lub strukturze, ale nie poza nią.

Aby uwidocznić zmienną w przestrzeni nazw

  1. Umieść instrukcję Dim dla zmiennej wewnątrz modułu, klasy lub struktury, ale poza dowolną procedurą.

  2. Dołącz słowo kluczowe Friend lub Public w instrukcji Dim .

  3. Możesz odwołać się do zmiennej z dowolnego miejsca w przestrzeni nazw zawierającej moduł, klasę lub strukturę.

Przykład

Poniższy przykład deklaruje zmienną na poziomie modułu i ogranicza widoczność kodu w 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  

W poprzednim przykładzie wszystkie procedury zdefiniowane w module demonstrateScope mogą odwoływać się do zmiennej StringstrMsg. Po wywołaniu usePrivateVariable procedury wyświetla zawartość zmiennej strMsg ciągu w oknie dialogowym.

Po wykonaniu poniższych zmian w poprzednim przykładzie zmienna strMsg ciągu może być odwoływanych przez kod w dowolnym miejscu w przestrzeni nazw jego deklaracji.

Public strMsg As String  

Niezawodne programowanie

Im węższy zakres zmiennej, tym mniejsza liczba szans przypadkowego odwoływania się do niej zamiast innej zmiennej o tej samej nazwie. Można również zminimalizować problemy z dopasowaniem odwołań.

Zabezpieczenia.NET Framework

Zawęższy zakres zmiennej, tym mniejsze są szanse na niewłaściwe użycie złośliwego kodu.

Zobacz też