Remarque
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.
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
attributelistOptionnel. Liste des attributs appliqués à cette propriété ou procédure
GetouSet. Consultez la Liste des attributs.DefaultOptionnel. 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 utiliserPrivatesur la propriété ou sur l’une de ses procédures de propriété. Pour obtenir des exemples et des instructions détaillées, consultez Comment : déclarer et appeler une propriété par défaut en Visual Basic.accessmodifierFacultatif sur l’instruction
Propertyet sur au moins l’une des instructionsGetetSet. Il peut s'agir d'une des méthodes suivantes :Consultez Access levels in Visual Basic.
propertymodifiersOptionnel. Il peut s'agir d'une des méthodes suivantes :
MustOverride OverridesNotOverridable Overrides
SharedOptionnel. Consultez Partagé.
ShadowsOptionnel. Consultez Shadows.
ReadOnlyOptionnel. Consultez ReadOnly.
WriteOnlyOptionnel. Consultez EnÉcritureSeule.
IteratorOptionnel. Consultez Iterator.
nameObligatoire. Nom de la propriété. Consultez Declared Element Names.
parameterlistOptionnel. 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. Les propriétés paramétrables sont souvent utilisées pour créer des indexeurs ou des propriétés par défaut qui autorisent l’accès de type collection. Consultez la liste des paramètres et comment : déclarer et appeler une propriété par défaut en Visual Basic.returntypeObligatoire si
Option StrictestOn. Le type de données de la valeur renvoyée par la propriété.ImplementsOptionnel. 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.
implementslistObligatoire si
Implementsest utilisé. Liste des propriétés en cours d'implémentation.implementedproperty [ , implementedproperty ... ]Chaque
implementedpropertyemploie la syntaxe et les éléments suivants :interface.definednameÉlément Description interfaceObligatoire. Nom d’une interface implémentée par la classe ou structure de cette propriété. definednameObligatoire. Nom par lequel la procédure est définie dans interface.GetOptionnel. Obligatoire si la propriété est marquée
ReadOnly. Démarre une procédure de propriétéGetutilisée pour renvoyer la valeur de la propriété. L’instructionGetn’est pas utilisée avec les propriétés implémentées automatiquement.statementsOptionnel. Bloc d’instructions à exécuter dans la procédure
GetouSet.End GetTermine la procédure de propriété
Get.SetOptionnel. Obligatoire si la propriété est marquée
WriteOnly. Démarre une procédure de propriétéSetutilisée pour renvoyer la valeur de la propriété. L’instructionSetn’est pas utilisée avec les propriétés implémentées automatiquement.End SetTermine la procédure de propriété
Set.End PropertyMet 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 Setprocédure (écriture seule) ou les deux (lecture-écriture). Vous pouvez omettre la procédure et Get l’utiliser lors de l’utilisation Set 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. Pour obtenir des exemples détaillés de niveaux d’accès mixtes, consultez Guide pratique pour déclarer une propriété avec des niveaux d’accès mixtes.
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
GetouSet, 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 laSetprocédurePrivate, mais pasPublic.Si vous définissez une propriété
ReadOnlyouWriteOnly, la procédure de propriété unique (GetouSet, 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
Propertypeut 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 instructionImplementsimmédiatement après son instructionClassouStructure. L’instructionImplementsdoit 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
GetouSetrenvoie au code appelant, l’exécution se poursuit avec l’instruction suivant celle qui l'a invoquée.Les instructions
Exit PropertyetReturnprovoquent une sortie immédiate d’une procédure de propriété. Tout nombre d’instructionsExit PropertyetReturnpeut apparaître où que ce soit dans la procédure, et vous pouvez associer des instructionsExit PropertyetReturn.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 PropertySi vous utilisez
Exit Propertysans affecter de valeur àname, la procédureGetretourne la valeur par défaut pour le type de données de la propriété.L’instruction
Returnaffecte simultanément la valeur de renvoi de la procédureGetet 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
Propriétés paramétrables
L’exemple suivant montre comment créer une propriété paramétrable, également appelée indexeur, qui permet un accès de type tableau à une collection :
Class SampleCollection
' Define a local collection to store strings.
Private items As New List(Of String)
' Define a parameterized property (indexer) for the collection.
Default Public Property Item(ByVal index As Integer) As String
Get
' Return the item at the specified index.
If index >= 0 AndAlso index < items.Count Then
Return items(index)
Else
Return Nothing
End If
End Get
Set(ByVal value As String)
' Set the item at the specified index.
If index >= 0 AndAlso index < items.Count Then
items(index) = value
ElseIf index = items.Count Then
' Allow adding new items at the end.
items.Add(value)
End If
End Set
End Property
' Add a Count property for convenience.
Public ReadOnly Property Count As Integer
Get
Return items.Count
End Get
End Property
' Add method to add items.
Public Sub Add(ByVal item As String)
items.Add(item)
End Sub
End Class
Pour obtenir des exemples complets d’utilisation des propriétés, notamment l’implémentation automatique, les niveaux d’accès mixte et les scénarios de validation, consultez Procédures de propriété.
Voir aussi
Types de propriétés et fonctionnalités
- Propriétés implémentées automatiquement
- Procédures de propriété
- Guide pratique pour créer une propriété
Scénarios de propriétés avancées
- Procédure : déclarer et appeler une propriété par défaut en Visual Basic
- Procédure : déclarer une propriété avec des niveaux d’accès mixte