Gewusst wie: Erstellen einer Eigenschaft (Visual Basic)

Sie schließen eine Eigenschaftsdefinition zwischen einer Property-Anweisung und einer End Property-Anweisung ein. Innerhalb dieser Definition definieren Sie eine Get-Prozedur oder eine Set-Prozedur oder beide. Der gesamte Code der Eigenschaft befindet sich in diesen Prozeduren.

Die Get-Prozedur ruft den Wert der Eigenschaft ab, und die Set-Prozedur speichert einen Wert. Wenn die Eigenschaft Lese-/Schreibzugriff haben soll, müssen Sie beide Prozeduren definieren. Für eine schreibgeschützte Eigenschaft definieren Sie nur Get, und für eine lesegeschützte Eigenschaft definieren Sie nur Set.

So erstellen Sie eine Eigenschaft

  1. Verwenden Sie außerhalb einer Eigenschaft oder Prozedur eine Property-Anweisung, gefolgt von einer End Property-Anweisung.

  2. Wenn die Eigenschaft Parameter akzeptiert, lassen Sie auf das Schlüsselwort Property den Namen der Prozedur folgen, dann die Parameterliste in Klammern.

  3. Fügen Sie hinter den Klammern eine As-Klausel ein, um den Datentyp des Werts der Eigenschaft anzugeben. Sie müssen den Datentyp auch für eine lesegeschützte Eigenschaft angeben.

  4. Fügen Sie die Prozeduren Get und Set nach Bedarf hinzu. Sehen Sie sich die folgenden Anweisungen an.

So erstellen Sie eine Get-Prozedur, die einen Eigenschaftswert abruft

  1. Schreiben Sie zwischen den Anweisungen Property und End Property eine Get-Anweisung, gefolgt von einer End Get-Anweisung. Sie müssen keine Parameter für die Get-Prozedur definieren.

  2. Platzieren Sie die Codeanweisungen zum Abrufen des Werts der Eigenschaft zwischen den Anweisungen Get und End Get. Dieser Code kann zusätzlich zum Generieren und Zurückgeben des Werts der Eigenschaft weitere Berechnungen und Datenbearbeitungen enthalten.

  3. Verwenden Sie eine Return-Anweisung, um den Wert der Eigenschaft an den aufrufenden Code zurückzugeben.

Sie müssen eine Get-Prozedur für eine Lese-/Schreibeigenschaft und für eine schreibgeschützte Eigenschaft schreiben. Für eine lesegeschützte Eigenschaft dürfen Sie keine Get-Prozedur definieren.

So erstellen Sie eine Set-Prozedur, die den Wert einer Eigenschaft schreibt

  1. Schreiben Sie zwischen den Anweisungen Property und End Property eine Set-Anweisung, gefolgt von einer End Set-Anweisung.

  2. Lassen Sie in der Set-Anweisung dem Schlüsselwort Set optional eine Parameterliste in Klammern folgen. Wenn die Parameterliste nicht vorhanden oder leer ist, wird ein impliziter Parameter namens Value definiert, dessen Typ der Typ der Eigenschaft selbst ist. Wenn die Parameterliste nicht leer ist, können Sie ggf. einen anderen Namen verwenden, aber der Parameter muss denselben Datentyp wie die Eigenschaft selbst aufweisen.

  3. Platzieren Sie die Codeanweisungen zum Speichern eines Werts in der Eigenschaft zwischen den Anweisungen Set und End Set. Dieser Code kann zusätzlich zum Überprüfen und Speichern des Werts der Eigenschaft weitere Berechnungen und Datenbearbeitungen enthalten.

  4. Verwenden Sie den value-Parameter, um den vom aufrufenden Code angegebenen Wert zu akzeptieren. Sie können diesen Wert entweder direkt in einer Zuweisungsanweisung speichern oder ihn in einem Ausdruck verwenden, um den zu speichernden internen Wert zu berechnen.

Sie müssen eine Set-Prozedur für eine Lese-/Schreibeigenschaft und für eine lesegeschützte Eigenschaft schreiben. Für eine schreibgeschützte Eigenschaft dürfen Sie keine Set-Prozedur definieren.

Beispiel

Im folgenden Beispiel wird eine Lese-/Schreibeigenschaft erstellt, die einen vollständigen Namen als zwei Namensbestandteile speichert, den Vornamen und den Nachnamen. Wenn der aufrufende Code fullName liest, kombiniert die Get-Prozedur die beiden Namensbestandteile und gibt den vollständigen Namen zurück. Wenn der aufrufende Code einen neuen vollständigen Namen zuweist, versucht die Set-Prozedur, ihn in zwei Namensbestandteile zu unterteilen. Wenn kein Leerzeichen gefunden wird, wird alles als Vorname gespeichert.

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

Das folgende Beispiel zeigt typische Aufrufe der Eigenschaftsprozeduren von fullName. Der erste Aufruf legt den Eigenschaftswert fest, und der zweite Aufruf ruft ihn ab.

fullName = "MyFirstName MyLastName"
MsgBox(fullName)

Weitere Informationen