Comment : créer une propriété (Visual Basic)

Vous placez une définition de propriété entre une instruction Property et une instruction End Property. Dans cette définition, vous définissez une procédure Get, une procédure Set ou les deux. Tout le code de la propriété se trouve dans ces procédures.

La procédure Get récupère la une valeur de la propriété et la procédure Set stocke une valeur. Si vous souhaitez que la propriété dispose d’un accès en lecture/écriture, vous devez définir les deux procédures. Pour une propriété en lecture seule, vous définissez uniquement Get, et pour une propriété en écriture seule, vous définissez uniquement Set.

Pour créer une propriété

  1. En dehors de toute propriété ou procédure, utilisez une instruction Property, suivie d’une instruction End Property.

  2. Si la propriété prend les paramètres, faites suivre le mot clé Property par le nom de la procédure, puis la liste des paramètres entre parenthèses.

  3. Faites suivre les parenthèses avec une clause As pour spécifier le type de données de la valeur de la propriété. Vous devez spécifier le type de données même pour une propriété en écriture seule.

  4. Ajoutez les procédures Get et Set , le cas échéant. Consultez les instructions suivantes.

Pour créer une procédure Get qui récupère une valeur de propriété

  1. Entre les instructions Property et End Property , écrivez une instruction Get, suivie d’une instruction End Get. Vous n’avez pas besoin de définir de paramètres pour la procédure Get.

  2. Placez les instructions de code pour récupérer la valeur de la propriété entre les instructions Get et End Get . Ce code peut inclure d’autres calculs et manipulations de données en plus de générer et de retourner la valeur de la propriété.

  3. Utilisez une instruction Return pour renvoyer la valeur de propriété à l’appel de code.

Vous devez écrire une procédure Get pour une propriété en lecture-écriture et pour une propriété en lecture seule. Vous ne devez pas définir de procédure Get pour une propriété en écriture seule.

Pour créer une procédure Set qui écrit la valeur d’une propriété

  1. Entre les instructions Property et End Property , écrivez une instruction Get, suivie d’une instruction End Set.

  2. Dans l’instructionSet, faites suivre éventuellement le mot clé Set par une liste de paramètres entre parenthèses. Si la liste de paramètres n’est pas présente ou est vide, un paramètre implicite nommé Value est défini, dont le type est le type de la propriété elle-même. Si la liste de paramètres n’est pas vide, vous pouvez utiliser un autre nom si nécessaire, mais le paramètre doit avoir le même type de données que la propriété elle-même.

  3. Placez les instructions de code pour stocker la valeur dans la propriété entre les instructions Set et End Set . Ce code peut inclure d’autres calculs et manipulations de données en plus de valider et de stocker la valeur de la propriété.

  4. Utilisez la valeur du paramètre pour accepter la valeur fournie par le code d’appel. Vous pouvez soit stocker cette valeur directement dans une instruction d’affectation, soit l’utiliser dans une expression pour calculer la valeur interne à stocker.

Vous devez écrire une procédure Set pour une propriété en lecture-écriture et pour une propriété en écriture seule. Vous ne devez pas définir de procédure Set pour une propriété en lecture seule.

Exemple

L’exemple suivant crée une propriété en lecture/écriture qui stocke un nom complet sous la forme de deux noms constitutifs, le prénom et le nom de famille. Lorsque le code appelant lit fullName, la procédure Get combine les deux noms constitutifs et retourne le nom complet. Lorsque le code appelant attribue un nouveau nom complet, la procédure Set tente de le diviser en deux noms constitutifs. S’il ne trouve pas d’espace, il stocke tout cela en tant que prénom.

Dim firstName, lastName As String
Property fullName() As String
    Get
      If lastName = "" Then
          Return firstName
      Else
          Return firstName & " " & lastName
      End If

    End Get
    Set(ByVal Value As String)
        Dim space As Integer = Value.IndexOf(" ")
        If space < 0 Then
            firstName = Value
            lastName = ""
        Else
            firstName = Value.Substring(0, space)
            lastName = Value.Substring(space + 1)
        End If
    End Set
End Property

L’exemple suivant montre des appels classiques aux procédures de propriété de fullName. Le premier appel définit la valeur de la propriété et le deuxième appel la récupère.

fullName = "MyFirstName MyLastName"
MsgBox(fullName)

Voir aussi