Partager via


Set, instruction (Visual Basic)

Mise à jour : novembre 2007

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

Éléments

  • 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 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 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

Tâches

Comment : ajouter des champs et des propriétés à une classe

Référence

Get, instruction

Property, instruction

Sub, instruction (Visual Basic)