Udostępnij za pośrednictwem


ReadOnly (Visual Basic)

Określa, że zmiennej lub właściwości mogą być odczytywane, ale nie są zapisywane.

Uwagi

Zasady

  • Kontekst deklaracji. Można użyć ReadOnly tylko na poziomie modułu.Oznacza to kontekst deklaracji ReadOnly element musi być klasy, struktury lub moduł i nie może być plikiem źródłowym, obszar nazw lub procedury.

  • Połączonymi modyfikatorami. Nie można określić ReadOnly wraz z Static w tej samej deklaracji.

  • Przypisanie wartości. Kod używające ReadOnly właściwości nie można ustawić jej wartość.Jednak kod, który ma dostęp do przechowywania podstawowej można przypisać lub zmienić wartość w dowolnym momencie.

    Można przypisać wartości do ReadOnly zmiennej tylko w swojej deklaracji lub w konstruktorze klasy lub struktury, w którym jest zdefiniowana.

Kiedy używać zmiennej tylko do odczytu

Istnieją sytuacje, w których nie można używać Const — Instrukcja (Visual Basic) zadeklarować i przypisać wartość stałą.Na przykład Const instrukcja nie może zaakceptować typ danych, które chcesz przypisać lub nie można obliczyć wartości w czasie kompilacji w wyrażeniu stałym.Być może nie nawet znasz wartość w czasie kompilacji.W takich przypadkach można użyć ReadOnly zmienną wartość stałą.

Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

Jeśli typ danych zmiennej jest typem odwołania, takich jak tablica lub wystąpienia klasy, jej członków można zmienić, nawet jeśli sam zmienna jest ReadOnly.Poniższy przykład ilustruje to.

ReadOnly characterArray() As Char = {"x"c, "y"c, "z"c}

Sub changeArrayElement()

characterArray(1) = "M"c

End Sub

Podczas inicjowania tablicy wskazywanej przez characterArray() posiada "x", "y" i "z".Ponieważ zmienna characterArray jest ReadOnly, nie można zmienić jej wartość, gdy jest zainicjowana; oznacza to, że nie można przypisać nowej tablicy do niego.Można jednak zmienić wartości jednego lub więcej członków tablicy.Po wywołaniu procedury changeArrayElement, tablica wskazywanej przez characterArray() posiada "x", "M" i "z".

Należy zauważyć, że jest to podobne do deklarowania parametru procedury za ByVal (Visual Basic), który uniemożliwia zmianę argumentu wywołującego, sama procedura, ale pozwala zmienić jego członków.

Przykład

Poniższy przykład definiuje ReadOnly właściwość w dniu, w którym zatrudniono pracownika.Magazynów klas, właściwości wartości wewnętrznie jako Private kod zmiennej i tylko wewnątrz klasy można zmienić tej wartości.Jednak ta właściwość jest Public, i każdy kod, który można uzyskać dostęp do tej klasy można odczytać właściwości.

Class employee
    ' Only code inside class employee can change the value of hireDateValue. 
    Private hireDateValue As Date 
    ' Any code that can access class employee can read property dateHired. 
    Public ReadOnly Property dateHired() As Date 
        Get 
            Return hireDateValue
        End Get 
    End Property 
End Class

ReadOnly Modyfikator mogą być używane w tych kontekstach:

Instrukcja Dim

Właściwość instrukcji

Zobacz też

Informacje

WriteOnly (Visual Basic)

Inne zasoby

Słowa kluczowe (Visual Basic)