Freigeben über


Gewusst wie: Erstellen einer Eigenschaft (Visual Basic)

Sie schließen eine Eigenschaftsdefinition zwischen einer Property Anweisung und einer End Property Anweisung ein. In dieser Definition definieren Sie eine Get Prozedur, eine Set Prozedur oder beides. Der gesamte Code des Eigentums liegt 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. Bei einer Nur-Lese-Eigenschaft definieren Sie nur Get, und für eine Nur-Schreib-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, folgen Sie dem Property Schlüsselwort mit dem Namen der Prozedur, und der Parameterliste in Klammern.

  3. Folgen Sie den Klammern mit einer As Klausel, um den Datentyp des Werts der Eigenschaft anzugeben. Sie müssen den Datentyp auch für eine nur schreibbare Eigenschaft angeben.

  4. Fügen Sie, falls angebracht, Get- und Set-Verfahren hinzu. Sehen Sie 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, um den Wert der Eigenschaft zwischen den Anweisungen Get und End Get abzurufen. Dieser Code kann zusätzlich zum Generieren und Zurückgeben des Eigenschaftswerts weitere Berechnungen und Datenmanipulationen umfassen.

  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. Sie dürfen keine Get Prozedur für eine rein schreibbare Eigenschaft definieren.

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

  1. Schreiben Sie zwischen der Property Anweisung und der End Property Anweisung 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 ist oder leer ist, wird ein impliziter Parameter mit dem Namen Value definiert, dessen 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 haben.

  3. Platzieren Sie die Codeanweisungen zum Speichern eines Werts in der Eigenschaft zwischen den Anweisungen Set und End Set. Dieser Code kann zusätzlich zur Überprüfung und Speicherung des Werts der Eigenschaft andere Berechnungen und Datenmanipulationen umfassen.

  4. Verwenden Sie den Wertparameter, um den vom aufrufenden Code bereitgestellten Wert zu akzeptieren. Sie können diesen Wert entweder direkt in einer Zuordnungsanweisung speichern oder 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 Bestandteilnamen, den Vornamen und den Nachnamen speichert. 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)

Siehe auch