Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megadja, hogy egy változó vagy tulajdonság olvasható, de nem írható.
Megjegyzések
Szabályok
Deklarációs környezet. Csak modulszinten használható
ReadOnly. Ez azt jelenti, hogy egyReadOnlyelem deklarációs környezetének osztálynak, struktúrának vagy modulnak kell lennie, és nem lehet forrásfájl, névtér vagy eljárás.Kombinált módosítók. Ugyanabban a deklarációban nem adható meg
ReadOnlyegyüttStatic.Érték hozzárendelése. A tulajdonságot
ReadOnlyhasználó kód nem tudja beállítani az értékét. A mögöttes tárolóhoz hozzáféréssel rendelkező kód azonban bármikor hozzárendelheti vagy módosíthatja az értéket.Egy változóhoz
ReadOnlycsak annak deklarációjában vagy egy definiált osztály vagy struktúra konstruktorában rendelhet hozzá értéket.
Mikor érdemes írásvédett változót használni?
Vannak olyan helyzetek, amikor nem használhat Konstans-utasítást állandó érték deklarálásához és hozzárendeléséhez. Előfordulhat például, hogy az Const utasítás nem fogadja el a hozzárendelni kívánt adattípust, vagy előfordulhat, hogy a fordításkor nem tudja kiszámítani az értéket állandó kifejezéssel. Lehet, hogy még a fordításkor sem tudja az értéket. Ezekben az esetekben egy ReadOnly változóval állandó értéket tárolhat.
Fontos
Ha a változó adattípusa hivatkozási típus, például tömb vagy osztálypéldány, akkor a tagjai akkor is módosíthatók, ha maga a változó.ReadOnly Az alábbi példa ezt szemlélteti.
ReadOnly characterArray() As Char = {"x"c, "y"c, "z"c}
Sub ChangeArrayElement()
characterArray(1) = "M"c
End Sub
Inicializáláskor a tömb characterArray() az "x", "y" és "z" értéket tartalmazza. Mivel a változó characterArray az ReadOnly, az inicializálás után nem módosíthatja az értékét, vagyis nem rendelhet hozzá új tömböt. Egy vagy több tömbtag értékét azonban módosíthatja. Az eljárás ChangeArrayElementmeghívását követően az "x", az "M" és a "z" értékre characterArray() mutatott tömb.
Vegye figyelembe, hogy ez hasonló ahhoz, ha egy eljárásparamétert ByVal értékre deklarál, ami megakadályozza, hogy az eljárás magát a hívó argumentumot módosítsa, de lehetővé teszi a tagok módosítását.
példa
Az alábbi példa egy tulajdonságot ReadOnly határoz meg arra a dátumra vonatkozóan, amikor az alkalmazottat felvették. Az osztály belsőleg változóként tárolja a tulajdonságértéket Private , és csak az osztályon belüli kód módosíthatja ezt az értéket. A tulajdonság azonban az Public, és az osztályhoz hozzáférő bármely kód elolvashatja a tulajdonságot.
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
A ReadOnly módosító az alábbi környezetekben használható: