Property, instruction

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 ] [ Iterator ]
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
- or -
[ <attributelist> ] [ Default ] [ accessmodifier ] 
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ] 
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]

Composants

Terme

Définition

attributelist

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

Default

Optionnel. 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

Optionnel. Il peut s'agir de l'une des valeurs suivantes :

Shared

Optionnel. Consultez Shared (Visual Basic).

Shadows

Optionnel. Consultez Shadows (Visual Basic).

ReadOnly

Optionnel. Consultez ReadOnly (Visual Basic).

WriteOnly

Optionnel. Consultez WriteOnly (Visual Basic).

Iterator

Optionnel. Consultez l' itérateur.

name

Requis. Nom de la propriété. Consultez Noms d'éléments déclarés (Visual Basic).

parameterlist

Optionnel. 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 (Visual Basic).

returntype

Obligatoire si Option Strict a la valeur On. Type de données de la valeur retournée par cette propriété.

Implements

Optionnel. 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

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

definedname

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

Get

Optionnel. 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

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

End Get

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

Set

Optionnel. Obligatoire si la propriété est 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 omettre la procédure Get et Set lors de l'utilisation d'une propriété implémentée automatiquement. Pour plus d'informations, consultez Propriétés implémentées automatiquement (Visual Basic).

Vous pouvez utiliser Property seulement au niveau de la classe. 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 (Visual Basic).

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 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 Set Private, 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 contenante doit contenir une instruction Implements qui suit immédiatement son instruction Class ou Structure. L'instruction Implements doit inclure 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

Référence

Get, instruction

Set, instruction (Visual Basic)

Liste de paramètres (Visual Basic)

Default (Visual Basic)

Concepts

Propriétés implémentées automatiquement (Visual Basic)

Autres ressources

Objets et classes en Visual Basic