Set, instruction (Visual Basic)
Déclare une procédure de propriété Set
utilisée pour attribuer une valeur à une propriété.
Syntaxe
[ <attributelist> ] [ accessmodifier ] Set [([ByVal value [ As datatype ]])]
[ statements ]
End Set
Éléments
attributelist
Optionnel. Consultez la Liste des attributs.
accessmodifier
Facultatif sur l’une des instructions Get
et Set
de cette propriété, tout au plus. Il peut s'agir d'une des méthodes suivantes :
Consultez Access levels in Visual Basic.
value
Optionnel. Paramètre contenant la nouvelle valeur de la propriété. Si elle n’est pas donnée (c’est-à-dire si la liste de paramètres n’est pas présente ou est vide), un paramètre implicite nommé value
est défini. Le type de données de ce paramètre implicite est le type de données de la propriété dans laquelle cette instruction Set
est déclarée.
datatype
Obligatoire si value
est présent et Option Strict
est On
. Impossible d’être présent si value
n’est pas donné. Type de données value
du paramètre. Le type de données spécifié doit être identique au type de données de la propriété dans laquelle cette instruction Set
est déclarée.
statements
Optionnel. Une ou plusieurs instructions qui s’exécutent lorsque la procédure Set
de propriété est appelée.
End Set
Obligatoire. Termine la définition de la procédure de propriété Set
.
Notes
Chaque propriété doit avoir une procédure de propriété Set
, sauf si la propriété est marquée ReadOnly
. La procédure Set
est utilisée pour définir la valeur de la propriété.
Visual Basic appelle automatiquement la procédure d’une propriété Set
lorsqu’une instruction d’affectation fournit une valeur à stocker dans la propriété.
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
. Le 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.
Le corps de la déclaration de propriété peut contenir uniquement les procédures de la propriété Get
et Set
entre l’instruction de propriété et l’instruction End Property
. Il ne peut stocker rien d’autre que ces procédures. En l’occurrence, il ne peut pas stocker la valeur actuelle de la propriété. Vous devez stocker cette valeur en dehors de la propriété, car si vous la stockez à l’intérieur de l’une des procédures de propriété, l’autre procédure de propriété ne peut pas y accéder. L’approche habituelle consiste à stocker la valeur dans une variable Privée déclarée au même niveau que la propriété. Vous devez définir une procédure Set
à l’intérieur de la propriété à laquelle elle s’applique.
La procédure Set
est définie par défaut sur le niveau d’accès de sa propriété contenante, sauf si vous utilisez accessmodifier
dans l’instruction Set
.
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éclaréeFriend
, vous pouvez déclarer la procédureSet
Private
, mais pasPublic
.Si vous définissez une propriété
WriteOnly
, la procédureSet
représente la propriété entière. Vous ne pouvez pas déclarer un niveau d’accès différent pourSet
, car cela définirait deux niveaux d’accès pour la propriété.
Comportement
Retour à partir d’une procédure de propriété. Lorsque la procédure
Set
retourne au code appelant, l’exécution continue après l’instruction qui a fourni la valeur à stocker.Les procédures de propriété
Set
peuvent être retournées à l’aide de l’instruction Retourner ou de l’instruction Sortir.Les instructions
Exit Property
etReturn
provoquent une sortie immédiate d’une procédure de propriété. N’importe quel nombre d’instructionsExit Property
etReturn
peut apparaître n’importe où dans la procédure, et vous pouvez combiner des instructionsExit Property
etReturn
.
Exemple
L’exemple suivant utilise l’instruction Set
pour définir la valeur d’une propriété.
Class propClass
Private propVal As Integer
Property Prop1() As Integer
Get
Return propVal
End Get
Set(ByVal value As Integer)
propVal = value
End Set
End Property
End Class