Porady: kontrolowanie zakresu 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 Visual Basic.

Zakres na poziomie procedury lub bloku

Aby zmienna była widoczna tylko wewnątrz bloku

  • Miejsce Dim — Instrukcja (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

  1. Miejsce Dim instrukcji dla zmiennej wewnątrz modułu, klasy lub struktury, ale poza jakąkolwiek procedurą.

  2. Zawiera Private (Visual Basic) słowa kluczowego w Dim instrukcji.

  3. 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

  1. Miejsce Dim instrukcji dla zmiennej wewnątrz modułu, klasy lub struktury, ale poza jakąkolwiek procedurą.

  2. Zawiera Friend (Visual Basic) lub Public (Visual Basic) słowa kluczowego w Dim instrukcji.

  3. 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

Dim — Instrukcja (Visual Basic)

Koncepcje

Zakres w Visual Basic

Okres istnienia w Visual Basic

Poziomy dostępu w Visual Basic

Zmienne w Visual Basic

Deklaracja zmiennej w Visual Basic