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 ou Set, 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é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 la propriété entière. Vous ne pouvez pas déclarer un niveau d’accès différent pour Set, 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 et Return provoquent une sortie immédiate d’une procédure de propriété. N’importe quel nombre d’instructions Exit Property et Return peut apparaître n’importe où dans la procédure, et vous pouvez combiner 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