Sdílet prostřednictvím


ReadOnly (Visual Basic)

Určuje, že proměnné nebo vlastnosti lze číst, ale nebyl zapsán.

Poznámky

Pravidla

  • Prohlášení kontextu. Můžete použít ReadOnly pouze na úrovni modulu.To znamená kontext prohlášení ReadOnly prvek musí být třída, struktura nebo modul a nemůže být zdrojový soubor, obor názvů nebo postup.

  • Kombinovanými modifikátory. Nelze zadat ReadOnly spolu s Static ve stejné deklaraci.

  • Přiřazení hodnoty. Kód spotřebovávat ReadOnly její hodnotu nelze nastavit vlastnost.Ale kód, který má přístup k podkladové úložiště můžete přiřadit nebo kdykoli změnit hodnotu.

    Můžete přiřadit hodnotu ReadOnly proměnné pouze ve svém prohlášení nebo v konstruktoru třídy nebo struktury, ve které je definována.

Kdy použít proměnnou jen pro čtení

Existují situace, ve kterých nelze použít Const – příkaz (Visual Basic) deklarovat a přiřadit konstantní hodnotu.Například Const prohlášení nepřijímá typ dat, který chcete přiřadit nebo pravděpodobně nebude možné vypočítat hodnotu v době kompilace s konstantní výraz.Možná ještě nevíte hodnota v čase kompilace.V těchto případech použít ReadOnly proměnné pro uložení konstantní hodnotu.

Poznámka k zabezpečeníPoznámka k zabezpečení

Pokud typ odkazu, například pole nebo instanci třídy je typ dat proměnné členů lze změnit i v případě, že je proměnná sám ReadOnly.To ukazuje následující příklad.

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

Sub changeArrayElement()

characterArray(1) = "M"c

End Sub

Při inicializaci pole odkazuje characterArray() podpalubí "x", "y" a "z".Protože proměnná characterArray je ReadOnly, její hodnotu nelze změnit, jakmile je inicializována; nové pole, nelze přiřadit k ní.Můžete však změnit hodnoty jednoho nebo více členů pole.Následující postup volání changeArrayElement, pole odkazuje characterArray() podpalubí "x", "M" a "z".

To je podobné deklarování parametru postup se ByVal (Visual Basic), zabraňuje postupem změnit argument volající, sám, ale umožňuje změnit jeho členů.

Příklad

Následující příklad definuje ReadOnly vlastnost pro datum přijetí zaměstnance.Úložišť tříd vlastnost hodnoty interně jako Private tuto hodnotu můžete změnit kód proměnné a pouze uvnitř třídy.Je však vlastnost Public, a jakýkoli kód, který můžete přistupovat k třídě lze číst vlastnost.

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 Modifikátor lze v těchto kontextech:

Příkazu Dim

Popis vlastností

Viz také

Referenční dokumentace

WriteOnly (Visual Basic)

Další zdroje

Klíčová slova (Visual Basic)