Gewusst wie: Erstellen einer Eigenschaft
Aktualisiert: November 2007
Eine Eigenschaftendefinition wird von einer Property-Anweisung und einer End Property-Anweisung eingeschlossen. Innerhalb dieser Definition kann eine Get-Prozedur, eine Set-Prozedur oder beides definiert werden. Der gesamte Code der Eigenschaft ist in diesen Prozeduren enthalten.
Die Get-Prozedur ruft den Eigenschaftenwert ab, während die Set-Prozedur einen Wert speichert. Wenn die Eigenschaft Lese-/Schreibzugriff haben soll, müssen Sie beide Prozeduren definieren. Soll die Eigenschaft schreibgeschützt sein, definieren Sie nur Get. Soll die Eigenschaft lesegeschützt sein, definieren Sie nur Set.
So erstellen Sie eine Eigenschaft
Verwenden Sie außerhalb einer Eigenschaft oder Prozedur eine Property-Anweisung und schließen Sie eine End Property-Anweisung an.
Wenn die Eigenschaft Parameter annimmt, geben Sie nach dem Property-Schlüsselwort den Namen der Prozedur und anschließend die Parameterliste in runden Klammern ein.
Geben Sie nach den Klammern eine As-Klausel ein, um den Datentyp für den Eigenschaftenwert anzugeben. Der Datentyp muss auch bei einer lesegeschützten Eigenschaft angegeben werden.
Fügen Sie die erforderlichen Get-Prozeduren und Set-Prozeduren hinzu. Anweisungen hierzu finden Sie im Folgenden.
So erstellen Sie eine Get-Prozedur, die einen Eigenschaftenwert abruft
Geben Sie zwischen der Property-Anweisung und der End Property-Anweisung eine Get-Anweisung ein, und schließen Sie eine End Get-Anweisung an. Für die Get-Prozedur brauchen keine Parameter definiert zu werden.
Fügen Sie die Codeanweisungen ein, um den Eigenschaftenwert zwischen der Get-Anweisung und der End Get-Anweisung abzurufen. Dieser Code kann neben der Generierung und der Rückgabe des Eigenschaftenwerts weitere Berechnungen und Datenbearbeitungsschritte enthalten.
Geben Sie mit einer Return-Anweisung den Eigenschaftenwert an den Aufrufcode zurück.
Für eine Schreib-Lese-Eigenschaft und eine schreibgeschützte Eigenschaft müssen Sie eine Get-Prozedur schreiben. Für eine lesegeschützte Eigenschaft dürfen Sie keine Get-Prozedur definieren.
So erstellen Sie eine Set-Prozedur, die einen Eigenschaftenwert schreibt
Geben Sie zwischen der Property-Anweisung und der End Property-Anweisung eine Set-Anweisung (Visual Basic) ein, und schließen Sie eine End Set-Anweisung an.
Geben Sie in der Set-Anweisung nach dem Set-Schlüsselwort eine Parameterliste in Klammern ein. Diese Parameterliste muss wenigstens einen Wertparameter für den Wert enthalten, der vom Aufrufcode übergeben wird. Der Standardname für diesen Wertparameter ist Value. Sie können jedoch gegebenenfalls einen anderen Namen verwenden. Der Wertparameter muss zum gleichen Datentyp gehören wie die Eigenschaft selbst.
Fügen Sie die Codeanweisungen, mit denen in der Eigenschaft ein Wert gespeichert wird, zwischen die Set-Anweisung und die End Set-Anweisung ein. Dieser Code kann neben Schritten zur Überprüfung und Speicherung des Eigenschaftenwerts weitere Berechnungen und Datenbearbeitungsschritte enthalten.
Bestätigen Sie den vom Aufrufcode bereitgestellten Wert mit dem Wertparameter. Sie können diesen Wert entweder direkt in einer Zuweisungsanweisung speichern oder ihn in einem Ausdruck verwenden, um den internen zu speichernden Wert zu berechnen.
Für eine Schreib-Lese-Eigenschaft und eine lesegeschützte Eigenschaft müssen Sie eine Set-Prozedur schreiben. Für eine schreibgeschützte Eigenschaft dürfen Sie keine Set-Prozedur definieren.
Beispiel
Im folgenden Beispiel wird eine Lese-Schreib-Eigenschaft erstellt, die einen vollständigen Namen in Form zweier konstituierender Namen speichert, als Vorname und Nachname. Wenn der Aufrufcode fullName liest, kombiniert die Get-Prozedur die beiden konstituierenden Namen und gibt den vollständigen Namen zurück. Wenn der Aufrufcode einen neuen vollständigen Namen zuweist, versucht die Set-Prozedur, den Namen in zwei konstituierende Namen aufzulösen. Wird kein Leerzeichen gefunden, wird der gesamte Name 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
Im folgenden Beispiel werden typische Aufrufe der Eigenschaftenprozeduren von fullName dargestellt. Mit dem ersten Aufruf wird der Eigenschaftenwert festgelegt, mit dem zweiten Aufruf wird der Wert abgerufen.
fullName = "MyFirstName MyLastName"
MsgBox(fullName)
Siehe auch
Aufgaben
Gewusst wie: Deklarieren einer Eigenschaft mit gemischten Zugriffsebenen
Gewusst wie: Aufrufen einer Eigenschaftenprozedur
Gewusst wie: Deklarieren und Aufrufen einer Standardeigenschaft in Visual Basic
Gewusst wie: Ablegen eines Werts in eine Eigenschaft
Gewusst wie: Abrufen eines Werts aus einer Eigenschaft
Konzepte
Parameter und Argumente von Prozeduren
Unterschiede zwischen Eigenschaften und Variablen in Visual Basic