Property, instruction

Mise à jour : novembre 2007

Déclare 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é.

[ <attributelist> ] [ Default ] [ accessmodifier ] 
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ] 
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

Éléments

  • attributelist
    Facultatif. Liste des attributs s'appliquant à cette propriété ou à la procédure Get ou Set. Consultez Liste d'attributs.

  • Default
    Facultatif. Spécifie que cette propriété est la propriété par défaut pour la classe ou la structure sur laquelle elle est définie. Les propriétés par défaut doivent accepter des paramètres et peuvent être définies et récupérées sans la spécification du nom de la propriété. Si vous déclarez la propriété comme Default, vous ne pouvez pas utiliser Private sur la propriété ou sur l'une ou l'autre de ses procédures de propriété.

  • accessmodifier
    Facultatif sur l'instruction Property et sur, au plus, l'une des instructions Get et Set. Il peut s'agir de l'une des valeurs suivantes :

    Consultez Niveaux d'accès dans Visual Basic.

  • propertymodifiers
    Facultatif. Il peut s'agir de l'une des valeurs suivantes :

  • Shared
    Facultatif. Consultez Shared (Visual Basic).

  • Shadows
    Facultatif. Consultez Shadows.

  • ReadOnly
    Facultatif. Consultez ReadOnly (Visual Basic).

  • WriteOnly
    Facultatif. Consultez WriteOnly.

  • name
    Obligatoire. Nom de la propriété. Consultez Noms d'éléments déclarés.

  • parameterlist
    Facultatif. Liste des noms de variables locales qui représentent les paramètres de cette propriété, et les éventuels paramètres supplémentaires de la procédure Set. Consultez Liste de paramètres.

  • returntype
    Obligatoire si OptionStrict a la valeur On. Type de données de la valeur retournée par cette propriété.

  • Implements
    Facultatif. Indique que cette propriété implémente une ou plusieurs propriétés, dont chacune est définie dans une interface implémentée par la classe ou la structure conteneur de cette propriété. Consultez Implements, instruction.

  • implementslist
    Requis si Implements est fourni. Liste des propriétés implémentées.

    implementedproperty [ , implementedproperty ... ]

    Chaque implementedproperty emploie la syntaxe et les paramètres suivants :

    interface.definedname

    Élément

    Description

    interface

    Obligatoire. Nom d'une interface implémentée par la classe ou la structure conteneur de cette propriété.

    definedname

    Obligatoire. Nom par lequel la propriété est définie dans interface.

  • Get
    Obligatoire à moins que la propriété soit marquée WriteOnly. Lance une procédure de propriété Get utilisée pour retourner la valeur de la propriété.

  • statements
    Facultatif. Bloc d'instructions à exécuter dans la procédure Get ou Set.

  • End Get
    Met fin à la procédure de propriété Get.

  • Set
    Obligatoire à moins que la propriété soit marquée ReadOnly. Lance une procédure de propriété Set qui est utilisée pour stocker la valeur de la propriété.

  • End Set
    Met fin à la procédure de propriété Set.

  • End Property
    Met fin à la définition de cette propriété.

Notes

L'instruction Property présente la déclaration d'une propriété. Une propriété peut contenir une procédure Get (lecture seule), une procédure Set (écriture seule), ou les deux (lecture-écriture).

Vous pouvez utiliser Property seulement au niveau du module. 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.

Les propriétés disposent par défaut d'un accès public. Vous pouvez modifier le niveau d'accès d'une propriété à l'aide d'un modificateur d'accès sur l'instruction Property, et vous pouvez éventuellement appliquer un niveau d'accès plus restrictif à l'une de ses procédures de 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.

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é ReadOnly ou WriteOnly, la procédure de propriété unique (Get ou Set, respectivement) représente la propriété entière. Vous ne pouvez pas déclarer un niveau d'accès différent pour cette procédure, parce que deux niveaux d'accès seront définis pour la propriété.

  • Type de retour. L'instruction Property peut déclarer le type de données de la valeur qu'elle retourne. Vous pouvez spécifier un type de données 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é retourne Object.

  • Implémentation. Si cette propriété utilise le mot clé Implements, la classe ou la structure conteneur doit contenir une instruction Implements qui suit immédiatement son instruction Class ou Structure. L'instruction Implements doit contenir chaque interface spécifiée dans implementslist. Toutefois, le nom par lequel une interface définit Property (dans definedname) ne doit pas être identique au nom de cette propriété (dans name).

Comportement

  • Retour d'une procédure de propriété. Lorsque la procédure Get ou Set retourne au code appelant, l'exécution se poursuit avec l'instruction qui suit celle qui l'a appelé.

    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.

  • Valeur de retour. Pour retourner une valeur à partir d'une procédure Get, vous pouvez soit assigner la valeur au nom de la propriété, soit l'inclure dans une instruction Return. L'exemple suivant assigne la valeur de retour au nom de la propriété quoteForTheDay, puis utilise l'instruction Exit Property pour retourner :

    Private quoteValue As String = "No quote assigned yet."
    
    ReadOnly Property quoteForTheDay() As String
        Get
            quoteForTheDay = quoteValue
            Exit Property
        End Get
    End Property
    

    Si vous utilisez Exit Property sans assigner une valeur à name, la procédure Get retourne la valeur par défaut pour le type de données de la propriété.

    L'instruction Return assigne simultanément la valeur de retour de la procédure Get et ferme la procédure. L'exemple suivant fournit une illustration.

    Private quoteValue As String = "No quote assigned yet."
    
    ReadOnly Property quoteForTheDay() As String
        Get
            Return quoteValue
        End Get
    End Property
    

Exemple

L'exemple suivant déclare 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

Voir aussi

Tâches

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

Concepts

Propriétés par défaut

Référence

Get, instruction

Set, instruction (Visual Basic)

Liste de paramètres