Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Spécifie qu’une variable ou une propriété peut être lue, mais pas écrite.
Remarques
Règles
Contexte de déclaration. Vous ne pouvez utiliser
ReadOnly
qu’au niveau du module. Cela signifie que le contexte de déclaration d’unReadOnly
élément doit être une classe, une structure ou un module, et ne peut pas être un fichier source, un espace de noms ou une procédure.Modificateurs combinés. Vous ne pouvez pas spécifier
ReadOnly
ensemble avecStatic
la même déclaration.Affectation d’une valeur. Le code consommant une
ReadOnly
propriété ne peut pas définir sa valeur. Toutefois, le code qui a accès au stockage sous-jacent peut affecter ou modifier la valeur à tout moment.Vous pouvez affecter une valeur à une
ReadOnly
variable uniquement dans sa déclaration ou dans le constructeur d’une classe ou d’une structure dans laquelle elle est définie.
Quand utiliser une variable ReadOnly
Il existe des situations dans lesquelles vous ne pouvez pas utiliser une instruction Const pour déclarer et affecter une valeur constante. Par exemple, l’instruction Const
peut ne pas accepter le type de données que vous souhaitez affecter, ou vous ne pourrez peut-être pas calculer la valeur au moment de la compilation avec une expression constante. Vous ne connaissez peut-être même pas la valeur au moment de la compilation. Dans ces cas, vous pouvez utiliser une ReadOnly
variable pour contenir une valeur constante.
Important
Si le type de données de la variable est un type référence, tel qu’un tableau ou une instance de classe, ses membres peuvent être modifiés même si la variable elle-même est ReadOnly
. L’exemple suivant illustre cela.
ReadOnly characterArray() As Char = {"x"c, "y"c, "z"c}
Sub ChangeArrayElement()
characterArray(1) = "M"c
End Sub
Lors de l’initialisation, le tableau pointé par characterArray()
« x », « y » et « z ». Étant donné que la variable characterArray
est ReadOnly
, vous ne pouvez pas modifier sa valeur une fois qu’elle est initialisée ; autrement dit, vous ne pouvez pas lui affecter un nouveau tableau. Toutefois, vous pouvez modifier les valeurs d’un ou plusieurs membres du tableau. Après un appel à la procédure ChangeArrayElement
, le tableau pointé par characterArray()
« x », « M » et « z ».
Notez que cela est similaire à la déclaration d’un paramètre de procédure à ByVal, ce qui empêche la procédure de modifier l’argument appelant lui-même, mais lui permet de modifier ses membres.
Exemple :
L’exemple suivant définit une ReadOnly
propriété pour la date à laquelle un employé a été embauché. La classe stocke la valeur de propriété en interne sous forme de Private
variable, et seul le code à l’intérieur de la classe peut modifier cette valeur. Toutefois, la propriété est Public
, et tout code pouvant accéder à la classe peut lire la propriété.
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
Le ReadOnly
modificateur peut être utilisé dans ces contextes :