Standardeigenschaften
Aktualisiert: November 2007
Eine Eigenschaft, die Argumente akzeptiert, kann als Standardeigenschaft für eine Klasse deklariert werden. Eine Standardeigenschaft ist die Eigenschaft, die Visual Basic verwendet, wenn keine bestimmte Eigenschaft für ein Objekt festgelegt wurde. Standardeigenschaften sind sehr hilfreich, denn sie ermöglichen das Schreiben von kompakterem Quellcode, da häufiger verwendete Eigenschaftennamen ausgelassen werden können.
Diejenigen Eigenschaften, die Parameter akzeptieren und voraussichtlich sehr häufig verwendet werden, sind am besten für die Verwendung als Standardeigenschaft geeignet. So wäre beispielsweise die Item-Eigenschaft eine gute Wahl für die Verwendung als Standardeigenschaft einer Auflistungsklasse, da sie hier besonders häufig verwendet wird.
Für Standardeigenschaften gelten die folgenden Regeln:
Ein Typ kann nur über eine Standardeigenschaft verfügen, einschließlich der aus einer Basisklasse geerbten Eigenschaften. Es gibt allerdings eine Ausnahme zu dieser Regel. Eine Standardeigenschaft, die in einer Basisklasse definiert ist, kann durch eine andere Standardeigenschaft in einer abgeleiteten Klasse gespiegelt werden.
Wird eine Standardeigenschaft aus einer Basisklasse durch eine Nicht-Standardeigenschaft in einer abgeleiteten Klasse gespiegelt, kann dennoch mit Standardeigenschaftssyntax auf die Standardeigenschaft zugegriffen werden.
Eine Standardeigenschaft darf nicht als Shared oder Private deklariert werden.
Wenn eine überladene Eigenschaft als Standardeigenschaft eingesetzt wird, muss für alle anderen überladenen Eigenschaften mit demselben Namen auch Default angegeben werden.
Standardeigenschaften müssen mindestens ein Argument akzeptieren.
Beispiel
Im folgenden Beispiel wird eine Eigenschaft, die ein Zeichenfolgenarray enthält, als Standardeigenschaft für eine Klasse deklariert:
Class Class2
' Define a local variable to store the property value.
Private PropertyValues As String()
' Define the default property.
Default Public Property Prop1(ByVal Index As Integer) As String
Get
Return PropertyValues(Index)
End Get
Set(ByVal Value As String)
If PropertyValues Is Nothing Then
' The array contains Nothing when first accessed.
ReDim PropertyValues(0)
Else
' Re-dimension the array to hold the new element.
ReDim Preserve PropertyValues(UBound(PropertyValues) + 1)
End If
PropertyValues(Index) = Value
End Set
End Property
End Class
Zugreifen auf Standardeigenschaften
Sie können auf Standardeigenschaften zugreifen, indem Sie eine abgekürzte Syntax verwenden. Im folgenden Codefragment wird beispielsweise sowohl standardmäßige Syntax als auch Standardeigenschaftensyntax verwendet:
Dim C As New Class2
' The first two lines of code access a property the standard way.
' Property assignment.
C.Prop1(0) = "Value One"
' Property retrieval.
MsgBox(C.Prop1(0))
' The following two lines of code use default property syntax.
' Property assignment.
C(1) = "Value Two"
' Property retrieval.
MsgBox(C(1))
Siehe auch
Konzepte
Empfehlung zur Aktualisierung: Auflösen von Standardeigenschaften ohne Parameter
Änderungen von Standardeigenschaften für Visual Basic 6.0-Benutzer