Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
ForaNextpętliFor.Możesz odwołać się do zmiennej tylko wewnątrz bloku.
Aby ustawić zmienną widoczną tylko w ramach procedury
Umieść instrukcję
Dimzmiennej wewnątrz procedury, ale poza blokiem, takim jak blokWith...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
Umieść instrukcję
Dimdla zmiennej wewnątrz modułu, klasy lub struktury, ale poza dowolną procedurą.Dołącz słowo kluczowe Private w instrukcji
Dim.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
Umieść instrukcję
Dimdla zmiennej wewnątrz modułu, klasy lub struktury, ale poza dowolną procedurą.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.