Property Statement
Définit le nom d'une propriété, ainsi que les procédures de propriété utilisées pour stocker et récupérer la valeur de la propriété.
Syntaxe
[ <attributelist> ] [ Default ] [ accessmodifier ]
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ] [ Iterator ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]
[ <attributelist> ] [ accessmodifier ] Get
[ statements ]
End Get
[ <attributelist> ] [ accessmodifier ] Set ( ByVal value As returntype [, parameterlist ] )
[ statements ]
End Set
End Property
- or -
[ <attributelist> ] [ Default ] [ accessmodifier ]
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]
Éléments
attributelist
Optionnel. Liste des attributs appliqués à cette propriété ou procédure
Get
ouSet
. Consultez la Liste des attributs.Default
Optionnel. Spécifie que cette propriété constitue la propriété par défaut de la classe ou structure qui lui est associée. Les propriétés par défaut doivent accepter des paramètres et peuvent être définies et récupérées sans spécifier le nom de la propriété. Si vous définissez la propriété en tant que
Default
, vous ne pouvez pas utiliserPrivate
sur la propriété ou sur l’une de ses procédures de propriété.accessmodifier
Facultatif sur l’instruction
Property
et sur au moins l’une des instructionsGet
etSet
. Il peut s'agir d'une des méthodes suivantes :Consultez Access levels in Visual Basic.
propertymodifiers
Optionnel. Il peut s'agir d'une des méthodes suivantes :
MustOverride Overrides
NotOverridable Overrides
Shared
Optionnel. Consultez Partagé.
Shadows
Optionnel. Consultez Shadows.
ReadOnly
Optionnel. Consultez ReadOnly.
WriteOnly
Optionnel. Consultez EnÉcritureSeule.
Iterator
Optionnel. Consultez Iterator.
name
Obligatoire. Nom de la propriété. Consultez Declared Element Names.
parameterlist
Optionnel. Liste des noms de variables locales représentant les paramètres de cette propriété et des paramètres supplémentaires possibles de la procédure
Set
. Consultez la Liste des paramètres.returntype
Obligatoire si
Option Strict
estOn
. Le type de données de la valeur renvoyée par la propriété.Implements
Optionnel. Indique que cette propriété implémente une ou plusieurs propriétés, chacune définie dans une interface implémentée par la classe ou la structure contenant cette propriété. Consultez Instruction d’implémentations.
implementslist
Obligatoire si
Implements
est utilisé. Liste des propriétés en cours d'implémentation.implementedproperty [ , implementedproperty ... ]
Chaque
implementedproperty
emploie la syntaxe et les éléments suivants :interface.definedname
Élément Description interface
Obligatoire. Nom d’une interface implémentée par la classe ou structure de cette propriété. definedname
Obligatoire. Nom par lequel la procédure est définie dans interface
.Get
Optionnel. Obligatoire si la propriété est marquée
ReadOnly
. Démarre une procédure de propriétéGet
utilisée pour renvoyer la valeur de la propriété. L’instructionGet
n’est pas utilisée avec les propriétés implémentées automatiquement.statements
facultatif. Bloc d’instructions à exécuter dans la procédure
Get
ouSet
.End Get
Termine la procédure de propriété
Get
.Set
Optionnel. Obligatoire si la propriété est marquée
WriteOnly
. Démarre une procédure de propriétéSet
utilisée pour renvoyer la valeur de la propriété. L’instructionSet
n’est pas utilisée avec les propriétés implémentées automatiquement.End Set
Termine la procédure de propriété
Set
.End Property
Met fin à la définition de cette propriété.
Notes
L’instruction Property
introduit la déclaration d’une propriété. Une propriété peut comporter une Get
procédure (lecture seule), une Set
procédure (écriture seule) ou les deux (lecture-écriture). Vous pouvez omettre la procédure et Set
l’utiliser lors de l’utilisation Get
d’une propriété implémentée automatiquement. Pour plus d’informations, consultez Propriétés implémentées automatiquement.
Vous pouvez utiliser Property
seulement au niveau de la classe. Cela signifie que le contexte de déclaration pour une propriété doit être une classe, une structure, un module ou une interface, et ne peut pas être un fichier source, un espace de noms, une procédure ou un bloc. Pour plus d’informations, consultez Contextes de déclaration et niveaux d’accès par défaut.
Par défaut, les propriétés utilisent l’accès public. Vous pouvez ajuster le niveau d’accès d’une propriété avec un modificateur d’accès sur l’instruction Property
, et vous pouvez éventuellement ajuster l’une de ses procédures de propriété à un niveau d’accès plus restrictif.
Visual Basic transmet un paramètre à la procédure Set
lors des attributions de propriétés. Si vous ne fournissez pas de paramètre pour Set
, l’environnement de développement intégré (IDE) utilise un paramètre implicite nommé value
. Ce paramètre contient la valeur à affecter à la propriété. Vous stockez généralement cette valeur dans une variable locale privée et vous la retournez chaque fois que la procédure Get
est appelée.
Règles
Niveaux d’accès mixtes. Si vous définissez une propriété en lecture-écriture, vous pouvez éventuellement spécifier un niveau d’accès différent pour la procédure
Get
ouSet
, mais pas les deux. Dans ce cas, le niveau d’accès de la procédure doit être plus restrictif que le niveau d’accès de la propriété. Par exemple, si la propriété est définie commeFriend
, vous pouvez définir laSet
procédurePrivate
, mais pasPublic
.Si vous définissez une propriété
ReadOnly
ouWriteOnly
, la procédure de propriété unique (Get
ouSet
, respectivement) représente l’ensemble de la propriété. Vous ne pouvez pas définir un niveau d’accès différent pour une telle procédure, puisque cela définit dans ce cas deux niveaux d’accès pour la propriété.Type de retour. L’instruction
Property
peut définir le type de données de la valeur qu’elle renvoie. Vous pouvez spécifier le type de données de votre choix ou le nom d’une énumération, d’une structure, d’une classe ou d’une interface.Si vous ne spécifiez pas
returntype
, la propriété renvoieObject
.Implémentation : Si cette propriété utilise le mot clé
Implements
, la classe ou la structure qui la contient doit comporter une instructionImplements
immédiatement après son instructionClass
ouStructure
. L’instructionImplements
doit inclure chaque interface spécifiée dansimplementslist
. Toutefois, le nom par lequel une interface définit leProperty
(dansdefinedname
) ne doit pas être identique au nom de cette propriété (dansname
).
Comportement
Retour à partir d’une procédure de propriété. Lorsque la procédure
Get
ouSet
renvoie au code appelant, l’exécution se poursuit avec l’instruction suivant celle qui l'a invoquée.Les instructions
Exit Property
etReturn
provoquent une sortie immédiate d’une procédure de propriété. Tout nombre d’instructionsExit Property
etReturn
peut apparaître où que ce soit dans la procédure, et vous pouvez associer des instructionsExit Property
etReturn
.Valeur renvoyée. Pour renvoyer une valeur d’une procédure
Get
, vous pouvez affecter la valeur au nom de la propriété ou l’inclure dans une instructionReturn
. L’exemple suivant affecte la valeur de retour au nom de la propriétéquoteForTheDay
, puis utilise l’instructionExit Property
à renvoyer.Private quoteValue As String = "No quote assigned yet."
ReadOnly Property QuoteForTheDay() As String Get QuoteForTheDay = quoteValue Exit Property End Get End Property
Si vous utilisez
Exit Property
sans affecter de valeur àname
, la procédureGet
retourne la valeur par défaut pour le type de données de la propriété.L’instruction
Return
affecte simultanément la valeur de renvoi de la procédureGet
et quitte la procédure. L'exemple suivant illustre cela.Private quoteValue As String = "No quote assigned yet."
ReadOnly Property QuoteForTheDay() As String Get Return quoteValue End Get End Property
Exemple
L’exemple suivant présente une propriété dans une classe.
Class Class1
' Define a local variable to store the property value.
Private propertyValue As String
' Define the property.
Public Property Prop1() As String
Get
' The Get property procedure is called when the value
' of a property is retrieved.
Return propertyValue
End Get
Set(ByVal value As String)
' The Set property procedure is called when the value
' of a property is modified. The value to be assigned
' is passed in the argument to Set.
propertyValue = value
End Set
End Property
End Class