Set, instruction (Visual Basic)
Déclare une procédure de propriété Set utilisée pour assigner une valeur à une propriété.
[ <attributelist> ] [ accessmodifier ] Set (ByVal value [ As datatype ])
[ statements ]
End Set
Composants
attributelist
Facultatif.Consultez Liste d'attributs.accessmodifier
Facultatif pour, au plus, l'une des instructions Get et Set de cette propriété.Il peut s'agir de l'une des valeurs suivantes :Consultez Niveaux d'accès dans Visual Basic.
value
Obligatoire.Paramètre contenant la nouvelle valeur de la propriété.datatype
Requis si Option Strict a la valeur On.Type de données du paramètre value.Le type de données spécifié doit être identique à celui de la propriété si cette instruction Set est déclarée.statements
Facultatif.Une ou plusieurs instructions qui s'exécutent lors de l'appel de la procédure de propriété Set.End Set
Obligatoire.Met fin à la définition de la procédure de propriété Set.
Notes
Chaque propriété doit contenir une procédure de propriété Set à moins que la propriété soit 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 Set d'une propriété lorsqu'une instruction d'assignation fournit une valeur à stocker dans la 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.
Le corps de la déclaration de propriété peut contenir uniquement les procédures Get et Set de la propriété entre l'instruction Property, instruction et End Property.Il ne peut stocker rien d'autre que ces procédures.En particulier, il ne peut pas stocker la valeur actuelle de la propriété.Vous devez stocker cette valeur à l'extérieur de la propriété, car si vous la stockez à l'intérieur de l'une ou l'autre 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 Private (Visual Basic) déclarée au même niveau que la propriété.Vous devez définir une procédure Set dans la propriété à laquelle elle s'applique.
La procédure Set prend par défaut le niveau d'accès de sa propriété conteneur à moins que vous utilisiez 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 ou la procédure 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é WriteOnly, la procédure Set représente l'ensemble de la propriété.Vous ne pouvez pas déclarer un niveau d'accès différent pour Set, parce que deux niveaux d'accès seront définis pour la propriété.
Comportement
Retour d'une procédure de propriété. Lorsque la procédure Set retourne au code appelant, l'exécution continue à suivre l'instruction qui a fourni la valeur à stocker.
Les procédures de propriété Set peuvent être retournées à l'aide de Return, instruction (Visual Basic) ou de Exit, instruction (Visual Basic).
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.
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
Voir aussi
Référence
Sub, instruction (Visual Basic)