Partager via


Guide pratique pour créer une propriété (Visual Basic)

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

La Get procédure récupère la valeur de la propriété et la Set procédure 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 Getet 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 End Property instruction.

  2. Si la propriété accepte des paramètres, suivez le Property mot clé portant le nom de la procédure, puis la liste des paramètres entre parenthèses.

  3. Suivez les parenthèses avec une As clause 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 et Set procédez Get comme il convient. Consultez les instructions suivantes.

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

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

  2. Placez les instructions de code pour récupérer la valeur de la propriété entre les instructions et End Get les Get instructions. 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 Return instruction pour renvoyer la valeur de la propriété au code appelant.

Vous devez écrire une Get procédure pour une propriété en lecture-écriture et pour une propriété en lecture seule. Vous ne devez pas définir de Get procédure 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 et End Property les Property instructions, écrivez une instruction Set, suivie d’une End Set instruction.

  2. Dans l’instruction Set , suivez éventuellement le Set mot clé avec 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 nom différent le cas échéant, 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 une valeur dans la propriété entre les instructions et End Set les Set instructions. 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 le paramètre valeur pour accepter la valeur fournie par le code appelant. Vous pouvez stocker cette valeur directement dans une instruction d’affectation ou l’utiliser dans une expression pour calculer la valeur interne à stocker.

Vous devez écrire une Set procédure pour une propriété en lecture-écriture et pour une propriété en écriture seule. Vous ne devez pas définir de Set procédure 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 constituants, le prénom et le nom. Lorsque le code appelant lit fullName, la procédure Get combine les deux noms constituants 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 le stocke comme 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 propriété et le deuxième appel le récupère.

fullName = "MyFirstName MyLastName"
MsgBox(fullName)

Voir aussi