Property, instruction
Mise à jour : novembre 2007
Déclare 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é.
[ <attributelist> ] [ Default ] [ accessmodifier ]
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ]
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
Éléments
attributelist
Facultatif. Liste des attributs s'appliquant à cette propriété ou à la procédure Get ou Set. Consultez Liste d'attributs.Default
Facultatif. Spécifie que cette propriété est la propriété par défaut pour la classe ou la structure sur laquelle elle est définie. Les propriétés par défaut doivent accepter des paramètres et peuvent être définies et récupérées sans la spécification du nom de la propriété. Si vous déclarez la propriété comme Default, vous ne pouvez pas utiliser Private sur la propriété ou sur l'une ou l'autre de ses procédures de propriété.accessmodifier
Facultatif sur l'instruction Property et sur, au plus, l'une des instructions Get et Set. Il peut s'agir de l'une des valeurs suivantes :Consultez Niveaux d'accès dans Visual Basic.
propertymodifiers
Facultatif. Il peut s'agir de l'une des valeurs suivantes :MustOverride Overrides
NotOverridable Overrides
Shared
Facultatif. Consultez Shared (Visual Basic).Shadows
Facultatif. Consultez Shadows.ReadOnly
Facultatif. Consultez ReadOnly (Visual Basic).WriteOnly
Facultatif. Consultez WriteOnly.name
Obligatoire. Nom de la propriété. Consultez Noms d'éléments déclarés.parameterlist
Facultatif. Liste des noms de variables locales qui représentent les paramètres de cette propriété, et les éventuels paramètres supplémentaires de la procédure Set. Consultez Liste de paramètres.returntype
Obligatoire si OptionStrict a la valeur On. Type de données de la valeur retournée par cette propriété.Implements
Facultatif. Indique que cette propriété implémente une ou plusieurs propriétés, dont chacune est définie dans une interface implémentée par la classe ou la structure conteneur de cette propriété. Consultez Implements, instruction.implementslist
Requis si Implements est fourni. Liste des propriétés implémentées.implementedproperty [ , implementedproperty ... ]
Chaque implementedproperty emploie la syntaxe et les paramètres suivants :
interface.definedname
Élément
Description
interface
Obligatoire. Nom d'une interface implémentée par la classe ou la structure conteneur de cette propriété.
definedname
Obligatoire. Nom par lequel la propriété est définie dans interface.
Get
Obligatoire à moins que la propriété soit marquée WriteOnly. Lance une procédure de propriété Get utilisée pour retourner la valeur de la propriété.statements
Facultatif. Bloc d'instructions à exécuter dans la procédure Get ou Set.End Get
Met fin à la procédure de propriété Get.Set
Obligatoire à moins que la propriété soit marquée ReadOnly. Lance une procédure de propriété Set qui est utilisée pour stocker la valeur de la propriété.End Set
Met fin à la procédure de propriété Set.End Property
Met fin à la définition de cette propriété.
Notes
L'instruction Property présente la déclaration d'une propriété. Une propriété peut contenir une procédure Get (lecture seule), une procédure Set (écriture seule), ou les deux (lecture-écriture).
Vous pouvez utiliser Property seulement au niveau du module. 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.
Les propriétés disposent par défaut d'un accès public. Vous pouvez modifier le niveau d'accès d'une propriété à l'aide d'un modificateur d'accès sur l'instruction Property, et vous pouvez éventuellement appliquer un niveau d'accès plus restrictif à l'une de ses procédures de propriété.
Visual Basic passe un paramètre à la procédure Set pendant les assignations de propriétés. Si vous ne précisez pas de paramètre pour Set, l'environnement de développement intégré (IDE) utilise un paramètre implicite appelé value. Ce paramètre contient la valeur à assigner à la propriété. Vous enregistrez généralement cette valeur dans une variable locale privée et la retournez à chaque appel de la procédure Get.
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 ou Set, mais pas pour les deux. Dans ce cas, le niveau d'accès de la procédure doit être plus restrictif que celui de la propriété. Par exemple, si la propriété est déclarée Friend, vous pouvez déclarer la procédure SetPrivate, mais pas Public.
Si vous définissez une propriété ReadOnly ou WriteOnly, la procédure de propriété unique (Get ou Set, respectivement) représente la propriété entière. Vous ne pouvez pas déclarer un niveau d'accès différent pour cette procédure, parce que deux niveaux d'accès seront définis pour la propriété.
Type de retour. L'instruction Property peut déclarer le type de données de la valeur qu'elle retourne. Vous pouvez spécifier un type de données 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é retourne Object.
Implémentation. Si cette propriété utilise le mot clé Implements, la classe ou la structure conteneur doit contenir une instruction Implements qui suit immédiatement son instruction Class ou Structure. L'instruction Implements doit contenir chaque interface spécifiée dans implementslist. Toutefois, le nom par lequel une interface définit Property (dans definedname) ne doit pas être identique au nom de cette propriété (dans name).
Comportement
Retour d'une procédure de propriété. Lorsque la procédure Get ou Set retourne au code appelant, l'exécution se poursuit avec l'instruction qui suit celle qui l'a appelé.
Les instructions Exit Property et Return provoquent la sortie immédiate d'une procédure de propriété. Plusieurs instructions Exit Property et Return peuvent apparaître n'importe où dans la procédure, et vous pouvez associer des instructions Exit Property et Return.
Valeur de retour. Pour retourner une valeur à partir d'une procédure Get, vous pouvez soit assigner la valeur au nom de la propriété, soit l'inclure dans une instruction Return. L'exemple suivant assigne la valeur de retour au nom de la propriété quoteForTheDay, puis utilise l'instruction Exit Property pour retourner :
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 assigner une valeur à name, la procédure Get retourne la valeur par défaut pour le type de données de la propriété.
L'instruction Return assigne simultanément la valeur de retour de la procédure Get et ferme la procédure. L'exemple suivant fournit une illustration.
Private quoteValue As String = "No quote assigned yet."
ReadOnly Property quoteForTheDay() As String Get Return quoteValue End Get End Property
Exemple
L'exemple suivant déclare 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
Voir aussi
Tâches
Comment : ajouter des champs et des propriétés à une classe