Jak: kontrolować zakres zmiennej (Visual Basic)
Normalnie, zmienna jest w zakres, lub są one widoczne dla odwołania w całym regionie to zgłosić.W niektórych przypadkach, zmienna 's poziom dostępu może mieć wpływ na jego zakres.
Aby uzyskać więcej informacji, zobacz Zakres w języku Visual Basic.
Zakres na poziomie procedury lub bloku
Aby zmienna była widoczna tylko wewnątrz bloku
Miejsce Dim instrukcji (Visual Basic) dla zmiennej między inicjujący i kończące instrukcje deklaracji tego bloku, na przykład między For i Next sprawozdania For pętli.
Można się odwoływać do zmiennej tylko od wewnątrz bloku.
Aby zmienna była widoczna tylko w ramach procedury
Miejsce Dim instrukcji dla zmiennej wewnątrz procedury, ale poza bloku (takie jak With...End With block).
Można się odwoływać do zmiennej tylko z w ramach procedury, w tym wewnątrz bloku, wszelkie zawarte w procedurze.
Zakres na poziomie obszaru nazw lub moduł
Dla wygody, pojedynczy termin poziom Moduł stosuje się jednakowo do modułów klas i struktur.Poziom dostępu zmienna na poziomie modułu decyduje o jego zakres.Obszar nazw, który zawiera moduł, klasy lub struktury wpływa również zakres.
Aby uwidocznić zmiennej całym moduł, klasy lub struktury
Miejsce Dim instrukcji dla zmiennej wewnątrz modułu, klasy lub struktury, ale poza jakąkolwiek procedurą.
Zawiera Prywatne (Visual Basic) słowa kluczowego w Dim instrukcji.
Można się odwoływać do zmiennej z gdziekolwiek w obrębie modułu, klasy lub struktury, ale nie z poza nią.
Aby zmienna była widoczna w całej przestrzeni nazw
Miejsce Dim instrukcji dla zmiennej wewnątrz modułu, klasy lub struktury, ale poza jakąkolwiek procedurą.
Zawiera Przyjaciel (Visual Basic) lub Publicznego (Visual Basic) słowa kluczowego w Dim instrukcji.
Można odwołać się do zmiennej z dowolnego miejsca w obrębie obszaru nazw zawierających moduł, klasy lub struktury.
Przykład
W poniższym przykładzie deklaruje zmienną na poziomie modułu oraz ogranicza jego widoczności dla 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 są zdefiniowane w module demonstrateScope może odnosić się do String zmienna strMsg.Gdy usePrivateVariable nosi nazwę procedury, wyświetla zawartość zmienna typu string strMsg w oknie dialogowym.
Z następujących zmian w poprzednim przykładzie zmienna typu string strMsg można dalej przez kod w dowolnym miejscu obszaru nazw w swojej deklaracji.
Public strMsg As String
Stabilne programowanie
Węższy zakres zmiennej, mniej możliwości, które zostały przypadkowo odwoływania się do niego miejsce z innej zmiennej o tej samej nazwie.Można również zminimalizować problemy z dopasowania odniesienia.
Zabezpieczenia
Węższy zakres zmiennej mniejsze szanse, które złośliwy kod można wprowadzać niewłaściwego użytkowania terenu.
Zobacz też
Informacje
Koncepcje
Okres istnienia w języku Visual Basic