Delen via


Procedure: Een eigenschap maken (Visual Basic)

U plaatst een eigenschapsdefinitie tussen een Property instructie en een End Property instructie. Binnen deze definitie definieert u een Get procedure, een Set procedure of beide. Alle code van de eigenschap ligt binnen deze procedures.

De Get procedure haalt de waarde van de eigenschap op en de Set procedure slaat een waarde op. Als u wilt dat de eigenschap lees-/schrijftoegang heeft, moet u beide procedures definiëren. Voor een alleen-lezen eigenschap definieert u alleen Geten voor een alleen-schrijven-eigenschap definieert u alleen Set.

Een eigenschap maken

  1. Gebruik buiten een eigenschap of procedure een eigenschapsinstructie, gevolgd door een End Property instructie.

  2. Als de eigenschap parameters gebruikt, volgt u het Property trefwoord met de naam van de procedure en vervolgens de lijst met parameters tussen haakjes.

  3. Volg de haakjes met een As component om het gegevenstype van de waarde van de eigenschap op te geven. U moet het gegevenstype zelfs opgeven voor een eigenschap alleen-schrijven.

  4. Voeg Get en Set procedures toe, indien van toepassing. Zie de volgende aanwijzingen.

Een Get-procedure maken waarmee een eigenschapswaarde wordt opgehaald

  1. Tussen de Property en End Property instructies schrijft u een Get-instructie, gevolgd door een End Get instructie. U hoeft geen parameters voor de Get procedure te definiëren.

  2. Plaats de code-instructies om de waarde van de eigenschap tussen de Get en End Get instructies op te halen. Deze code kan andere berekeningen en gegevensmanipulaties bevatten, naast het genereren en retourneren van de waarde van de eigenschap.

  3. Gebruik een Return instructie om de waarde van de eigenschap te retourneren aan de aanroepende code.

U moet een Get procedure schrijven voor een eigenschap lezen/schrijven en voor een alleen-lezen-eigenschap. U moet geen procedure definiëren Get voor een eigenschap met alleen-schrijven.

Een setprocedure maken waarmee de waarde van een eigenschap wordt geschreven

  1. Tussen de Property en End Property instructies schrijft u een set-instructie, gevolgd door een End Set instructie.

  2. Volg in de Set instructie desgewenst het Set trefwoord met een parameterlijst tussen haakjes. Als de parameterlijst niet aanwezig is of leeg is, wordt een impliciete parameter met de naam Value gedefinieerd, waarvan het type het type van de eigenschap zelf is. Als de lijst met parameters niet leeg is, kunt u indien van toepassing een andere naam gebruiken, maar moet de parameter hetzelfde gegevenstype hebben als de eigenschap zelf.

  3. Plaats de code-instructies om een waarde op te slaan in de eigenschap tussen de Set en End Set instructies. Deze code kan andere berekeningen en gegevensmanipulaties bevatten, naast het valideren en opslaan van de waarde van de eigenschap.

  4. Gebruik de waardeparameter om de waarde te accepteren die is opgegeven door de aanroepende code. U kunt deze waarde rechtstreeks opslaan in een toewijzingsinstructie of deze gebruiken in een expressie om de interne waarde te berekenen die moet worden opgeslagen.

U moet een Set procedure schrijven voor een eigenschap lezen/schrijven en voor een alleen-schrijven-eigenschap. U mag geen procedure definiëren Set voor een alleen-lezen eigenschap.

Opmerking

In het volgende voorbeeld wordt een lees-/schrijfeigenschap gemaakt waarin een volledige naam wordt opgeslagen als twee samenstellende namen, de voornaam en de achternaam. Wanneer de aanroepende fullNamecode wordt gelezen, worden de Get twee samenstellende namen gecombineerd en wordt de volledige naam geretourneerd. Wanneer de aanroepende code een nieuwe volledige naam toewijst, probeert de Set procedure deze op te splitsen in twee samenstellende namen. Als er geen spatie wordt gevonden, wordt deze allemaal opgeslagen als de voornaam.

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

In het volgende voorbeeld ziet u typische aanroepen naar de eigenschapsprocedures van fullName. De eerste aanroep stelt de eigenschapswaarde in en de tweede aanroep haalt deze op.

fullName = "MyFirstName MyLastName"
MsgBox(fullName)

Zie ook