Udostępnij za pomocą


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 Scope in Visual Basic.

Zakres na poziomie bloku lub procedury

Aby ustawić zmienną widoczną tylko w bloku

  • Umieść instrukcję Dim dla zmiennej między instrukcjami deklaracji początkowej i końcowej tego bloku, na przykład między instrukcjami For a Next pętli For.

    Możesz odwołać się do zmiennej tylko wewnątrz bloku.

Aby ustawić zmienną widoczną tylko w ramach procedury

  • Umieść instrukcję Dim zmiennej wewnątrz procedury, ale poza blokiem, takim jak blok With...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 termin poziom modułu stosuje się 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 zmienna była widoczna w całej 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ść ciągu zmiennej strMsg w oknie dialogowym.

Po wykonaniu poniższych zmian w poprzednim przykładzie zmienna ciągu strMsg może być odwoływana 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żesz także zminimalizować problemy związane z dopasowaniem odwołań.

Zabezpieczenia programu .NET Framework

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

Zobacz także