Property StatementProperty Statement

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é.Declares the name of a property, and the property procedures used to store and retrieve the value of the property.

SyntaxeSyntax

[ <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 ]

ComposantsParts

  • attributelist

    Ce paramètre est facultatif.Optional. Liste des attributs qui s’appliquent à cette propriété ou Get ou Set procédure.List of attributes that apply to this property or Get or Set procedure. Consultez la liste des attributs.See Attribute List.

  • Default

    Ce paramètre est facultatif.Optional. 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.Specifies that this property is the default property for the class or structure on which it is defined. Les propriétés par défaut doivent accepter des paramètres et peuvent être définies et récupérées sans spécifier le nom de la propriété.Default properties must accept parameters and can be set and retrieved without specifying the property name. Si vous déclarez la propriété comme Default, vous ne pouvez pas utiliser Private sur la propriété ou sur l’une de ses procédures de propriété.If you declare the property as Default, you cannot use Private on the property or on either of its property procedures.

  • accessmodifier

    Facultatif sur l’instruction Property et sur au plus une des instructions Get et Set.Optional on the Property statement and on at most one of the Get and Set statements. Il peut s'agir de l'un des éléments suivants :Can be one of the following:

    Consultez Access levels in Visual Basic.See Access levels in Visual Basic.

  • propertymodifiers

    Ce paramètre est facultatif.Optional. Il peut s'agir de l'un des éléments suivants :Can be one of the following:

  • Shared

    Ce paramètre est facultatif.Optional. Consultez partagé.See Shared.

  • Shadows

    Ce paramètre est facultatif.Optional. Consultez Shadows.See Shadows.

  • ReadOnly

    Ce paramètre est facultatif.Optional. Consultez ReadOnly.See ReadOnly.

  • WriteOnly

    Ce paramètre est facultatif.Optional. Consultez WriteOnly.See WriteOnly.

  • Iterator

    Ce paramètre est facultatif.Optional. Consultez iterator.See Iterator.

  • name

    Requis.Required. Nom de la propriété.Name of the property. Consultez Declared Element Names.See Declared Element Names.

  • parameterlist

    Ce paramètre est facultatif.Optional. Liste des noms de variables locales qui représentent les paramètres de cette propriété, ainsi que des paramètres supplémentaires possibles de la procédure Set.List of local variable names representing the parameters of this property, and possible additional parameters of the Set procedure. Consultez la liste des paramètres.See Parameter List.

  • returntype

    Obligatoire si Option Strict est On.Required if Option Strict is On. Type de données de la valeur retournée par cette propriété.Data type of the value returned by this property.

  • Implements

    Ce paramètre est facultatif.Optional. Indique que cette propriété implémente une ou plusieurs propriétés, chacune d’elles étant définie dans une interface implémentée par la classe ou la structure conteneur de cette propriété.Indicates that this property implements one or more properties, each one defined in an interface implemented by this property's containing class or structure. Consultez Implements, instruction.See Implements Statement.

  • implementslist

    Obligatoire si Implements est utilisé.Required if Implements is supplied. Liste des propriétés en cours d’implémentation.List of properties being implemented.

    implementedproperty [ , implementedproperty ... ]

    Chaque implementedproperty emploie la syntaxe et les éléments suivants :Each implementedproperty has the following syntax and parts:

    interface.definedname

    ÉlémentPart DescriptionDescription
    interface Requis.Required. Nom d’une interface implémentée par la classe ou la structure conteneur de cette propriété.Name of an interface implemented by this property's containing class or structure.
    definedname Requis.Required. Nom par lequel la propriété est définie dans interface.Name by which the property is defined in interface.
  • Get

    Ce paramètre est facultatif.Optional. Obligatoire si la propriété est marquée ReadOnly.Required if the property is marked ReadOnly. Démarre une procédure de propriété Get qui est utilisée pour retourner la valeur de la propriété.Starts a Get property procedure that is used to return the value of the property. L’instruction Get n’est pas utilisée avec les Propriétés implémentées automatiquement.The Get statement is not used with auto-implemented properties.

  • statements

    Ce paramètre est facultatif.Optional. Bloc d’instructions à exécuter au sein de la procédure Get ou Set.Block of statements to run within the Get or Set procedure.

  • End Get

    Met fin à la procédure de propriété Get.Terminates the Get property procedure.

  • Set

    Ce paramètre est facultatif.Optional. Obligatoire si la propriété est marquée WriteOnly.Required if the property is marked WriteOnly. Démarre une procédure de propriété Set qui est utilisée pour stocker la valeur de la propriété.Starts a Set property procedure that is used to store the value of the property. L’instruction Set n’est pas utilisée avec les Propriétés implémentées automatiquement.The Set statement is not used with auto-implemented properties.

  • End Set

    Met fin à la procédure de propriété Set.Terminates the Set property procedure.

  • End Property

    Met fin à la définition de cette propriété.Terminates the definition of this property.

NotesRemarks

L’instruction Property introduit la déclaration d’une propriété.The Property statement introduces the declaration of a property. Une propriété peut avoir une procédure Get (lecture seule), une procédure Set (écriture seule) ou les deux (lecture-écriture).A property can have a Get procedure (read only), a Set procedure (write only), or both (read-write). Vous pouvez omettre les Get et Set procédure lors de l’utilisation d’une propriété implémentée automatiquement.You can omit the Get and Set procedure when using an auto-implemented property. Pour plus d’informations, consultez Propriétés implémentées automatiquement.For more information, see Auto-Implemented Properties.

Vous pouvez utiliser Property uniquement au niveau de la classe.You can use Property only at class level. 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.This means the declaration context for a property must be a class, structure, module, or interface, and cannot be a source file, namespace, procedure, or block. Pour plus d’informations, consultez Contextes de déclaration et niveaux d’accès par défaut.For more information, see Declaration Contexts and Default Access Levels.

Par défaut, les propriétés utilisent un accès public.By default, properties use public access. Vous pouvez ajuster 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 ajuster l’une de ses procédures de propriété à un niveau d’accès plus restrictif.You can adjust a property's access level with an access modifier on the Property statement, and you can optionally adjust one of its property procedures to a more restrictive access level.

Visual Basic passe un paramètre à la procédure Set au cours des assignations de propriété.Visual Basic passes a parameter to the Set procedure during property assignments. 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.If you do not supply a parameter for Set, the integrated development environment (IDE) uses an implicit parameter named value. Ce paramètre contient la valeur à assigner à la propriété.This parameter holds the value to be assigned to the property. En général, cette valeur est stockée dans une variable locale privée et elle est retournée à chaque appel de la procédure Get.You typically store this value in a private local variable and return it whenever the Get procedure is called.

RèglesRules

  • Niveaux d’accès mixtes.Mixed Access Levels. Si vous définissez une propriété en lecture-écriture, vous pouvez éventuellement spécifier un niveau d’accès différent pour la Get ou la procédure Set, mais pas les deux.If you are defining a read-write property, you can optionally specify a different access level for either the Get or the Set procedure, but not both. 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é.If you do this, the procedure access level must be more restrictive than the property's access level. Par exemple, si la propriété est déclarée Friend, vous pouvez déclarer la procédure Set Private, mais pas Public.For example, if the property is declared Friend, you can declare the Set procedure Private, but not 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 totalité de la propriété.If you are defining a ReadOnly or WriteOnly property, the single property procedure (Get or Set, respectively) represents all of the property. Vous ne pouvez pas déclarer un niveau d’accès différent pour une telle procédure, car cela aurait pour effet de définir deux niveaux d’accès pour la propriété.You cannot declare a different access level for such a procedure, because that would set two access levels for the property.

  • Type de retour.Return Type. L’instruction Property peut déclarer le type de données de la valeur qu’elle retourne.The Property statement can declare the data type of the value it returns. Vous pouvez spécifier n’importe quel type de données ou le nom d’une énumération, d’une structure, d’une classe ou d’une interface.You can specify any data type or the name of an enumeration, structure, class, or interface.

    Si vous ne spécifiez pas returntype, la propriété retourne Object.If you do not specify returntype, the property returns Object.

  • Déploiement.Implementation. Si cette propriété utilise le mot clé Implements, la classe ou la structure conteneur doit avoir une instruction Implements immédiatement après son Class ou Structure instruction.If this property uses the Implements keyword, the containing class or structure must have an Implements statement immediately following its Class or Structure statement. L’instruction Implements doit inclure chaque interface spécifiée dans implementslist.The Implements statement must include each interface specified in implementslist. Toutefois, le nom par lequel une interface définit le Property (dans definedname) ne doit pas être le même que le nom de cette propriété (dans name).However, the name by which an interface defines the Property (in definedname) does not have to be the same as the name of this property (in name).

ComportementBehavior

  • Retour d’une procédure de propriété.Returning from a Property Procedure. Lorsque la procédure Get ou Set retourne au code appelant, l’exécution se poursuit avec l’instruction qui suit l’instruction qui l’a appelée.When the Get or Set procedure returns to the calling code, execution continues with the statement following the statement that invoked it.

    Les instructions Exit Property et Return provoquent une sortie immédiate d’une procédure de propriété.The Exit Property and Return statements cause an immediate exit from a property procedure. Un nombre quelconque d’instructions Exit Property et Return peuvent apparaître n’importe où dans la procédure, et vous pouvez mélanger des instructions Exit Property et Return.Any number of Exit Property and Return statements can appear anywhere in the procedure, and you can mix Exit Property and Return statements.

  • Valeur de retour.Return Value. Pour retourner une valeur à partir d’une procédure Get, vous pouvez affecter la valeur au nom de la propriété ou l’inclure dans une instruction Return.To return a value from a Get procedure, you can either assign the value to the property name or include it in a Return statement. L’exemple suivant affecte la valeur de retour au nom de la propriété quoteForTheDay puis utilise l’instruction Exit Property pour retourner.The following example assigns the return value to the property name quoteForTheDay and then uses the Exit Property statement to return.

    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 de valeur à name, la procédure Get retourne la valeur par défaut pour le type de données de la propriété.If you use Exit Property without assigning a value to name, the Get procedure returns the default value for the property's data type.

    En même temps, l’instruction Return affecte la valeur de retour de la procédure Get et ferme la procédure.The Return statement at the same time assigns the Get procedure return value and exits the procedure. L’exemple suivant illustre cela.The following example shows this.

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

ExempleExample

L’exemple suivant déclare une propriété dans une classe.The following example declares a property in a class.

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 aussiSee also