Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Deklariert den Namen einer Eigenschaft sowie die Eigenschaftenprozeduren zum Speichern und Abrufen des Werts der Eigenschaft.
Syntax
[ <attributelist> ] [ Default ] [ accessmodifier ]
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ] [ Iterator ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]
[ <attributelist> ] [ accessmodifier ] Get
[ statements ]
End Get
[ <attributelist> ] [ accessmodifier ] Set ( ByVal value As returntype [, parameterlist ] )
[ statements ]
End Set
End Property
- or -
[ <attributelist> ] [ Default ] [ accessmodifier ]
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]
Bestandteile
attributelistOptional. Die Liste der Attribute, die für diese Eigenschaft oder die
Get- oderSet-Prozedur gelten. Siehe Attributliste.DefaultOptional. Gibt an, dass diese Eigenschaft die Standardeigenschaft für die Klasse oder Struktur ist, für die sie definiert ist. Standardeigenschaften müssen Parameter akzeptieren und können ohne Angabe des Eigenschaftennamens festgelegt und abgerufen werden. Wenn Sie die Eigenschaft als
Defaultdeklarieren, können SiePrivateweder für die Eigenschaft noch für eine der zugehörigen Eigenschaftenprozeduren verwenden. Beispiele und ausführliche Anleitungen finden Sie unter How to: Declare and Call a Default Property in Visual Basic.accessmodifierOptional für die
Property-Anweisung und höchstens eine derGet- undSet-Anweisungen. Dabei kann es sich um eine der folgenden Methoden handeln:propertymodifiersOptional. Dabei kann es sich um eine der folgenden Methoden handeln:
MustOverride OverridesNotOverridable Overrides
SharedOptional. Siehe Shared.
ShadowsOptional. Siehe Shadows.
ReadOnlyOptional. Siehe ReadOnly.
WriteOnlyOptional. Weitere Informationen finden Sie unter WriteOnly.
IteratorOptional. Weitere Informationen finden Sie unter Iterator.
nameErforderlich. Der Name der Eigenschaft. Siehe Declared Element Names.
parameterlistOptional. Liste der Namen der lokalen Variablen, die die Parameter dieser Eigenschaft darstellen, und mögliche zusätzliche Parameter der
Set-Prozedur. Parametrisierte Eigenschaften werden häufig verwendet, um Indexer oder Standardeigenschaften zu erstellen, die sammlungsähnlichen Zugriff ermöglichen. Siehe Parameterliste und Vorgehensweise: Deklarieren und Aufrufen einer Standardeigenschaft in Visual Basic.returntypeErforderlich, wenn
Option StrictOnist. Datentyp des von dieser Eigenschaft zurückgegebenen Werts.ImplementsOptional. Gibt an, dass diese Eigenschaft mindestens eine Eigenschaft implementiert, die jeweils in einer Schnittstelle definiert ist, die durch die enthaltende Klasse oder Struktur dieser Eigenschaft implementiert wird. Weitere Informationen finden Sie unter Implements-Anweisung.
implementslistErforderlich, wenn
Implementsangegeben wird. Liste der zu implementierenden Eigenschaften.implementedproperty [ , implementedproperty ... ]Jede
implementedpropertyweist folgende Syntax und Bestandteile auf:interface.definednameTeil Beschreibung interfaceErforderlich. Name einer Schnittstelle, die von der Klasse oder Struktur dieser Eigenschaft implementiert wird. definednameErforderlich. Name, durch den die Eigenschaft in interfacedefiniert ist.GetOptional. Erforderlich, wenn die Eigenschaft als
ReadOnlymarkiert ist. Startet eineGet-Eigenschaftenprozedur, die verwendet wird, um den Wert der Eigenschaft zurückzugeben. DieGetAnweisung wird nicht mit automatisch implementierten Eigenschaften verwendet.statementsOptional. Block von Anweisungen, die innerhalb der
Get- oderSet-Prozedur ausgeführt werden sollen.End GetBeendet die
Get-Eigenschaftenprozedur.SetOptional. Erforderlich, wenn die Eigenschaft als
WriteOnlymarkiert ist. Startet eineSet-Eigenschaftenprozedur, die verwendet wird, um den Wert der Eigenschaft zu speichern. DieSetAnweisung wird nicht mit automatisch implementierten Eigenschaften verwendet.End SetBeendet die
Set-Eigenschaftenprozedur.End PropertyBeendet die Definition dieser Eigenschaft.
Bemerkungen
Die Property-Anweisung führt die Deklaration einer Eigenschaft ein. Eine Eigenschaft kann über eine Get-Prozedur (schreibgeschützt), eine Set-Prozedur (lesegeschützt) oder beides (Lese-/Schreibzugriff) verfügen. Sie können die Get Eigenschaft und Set Prozedur bei Verwendung einer automatisch implementierten Eigenschaft weglassen. Weitere Informationen finden Sie unter Automatisch implementierte Eigenschaften.
Property kann nur auf Klassenebene verwendet werden. Der Deklarationskontext für eine Eigenschaft muss demnach eine Klasse, Struktur, ein Modul oder eine Schnittstelle sein und darf keine Quelldatei, kein Namespace, keine Prozedur und kein Block sein. Weitere Informationen finden Sie unter Deklarationskontexte und Standardzugriffsebenen.
Standardmäßig verwenden Eigenschaften öffentlichen Zugriff. Sie können die Zugriffsebene einer Eigenschaft mit einem Zugriffsmodifizierer für die Property-Anweisung anpassen, und Sie können optional eine ihrer Eigenschaftenprozeduren mit einer restriktiveren Zugriffsebene versehen. Ausführliche Beispiele für gemischte Zugriffsebenen finden Sie unter How to: Declare a Property with Mixed Access Levels.
Visual Basic übergibt während der Eigenschaftenzuweisungen einen Parameter an die Set-Prozedur. Wenn Sie keinen Parameter für Set angeben, verwendet die integrierte Entwicklungsumgebung (IDE) einen impliziten Parameter namens value. Dieser Parameter enthält den Wert, der der Eigenschaft zugewiesen werden soll. Sie speichern diesen Wert in der Regel in einer privaten lokalen Variablen und geben ihn zurück, wenn die Get-Prozedur aufgerufen wird.
Regeln
Gemischte Zugriffsebenen. Wenn Sie eine Lese-/Schreibeigenschaft definieren, können Sie optional eine andere Zugriffsebene für die
Get- oderSet-Prozedur angeben, aber nicht für beide. In diesem Fall muss die Zugriffsebene der Prozedur restriktiver sein als die Zugriffsebene der Eigenschaft. Wenn die Eigenschaft beispielsweise alsFrienddeklariert ist, können Sie dieSet-Prozedur alsPrivatedeklarieren, aber nicht alsPublic.Wenn Sie eine
ReadOnly- oderWriteOnly-Eigenschaft definieren, stellt die einzelne Eigenschaftenprozedur (GetbzwSet) die gesamte Eigenschaft dar. Sie können keine andere Zugriffsebene für eine solche Prozedur deklarieren, da dadurch zwei Zugriffsebenen für die Eigenschaft festgelegt würden.Rückgabetyp. Die
Property-Anweisung kann den Datentyp des zurückgegebenen Werts deklarieren. Sie können einen beliebigen Datentyp oder den Namen einer Enumeration, Struktur, Klasse oder Schnittstelle angeben.Wenn Sie
returntypenicht angeben, gibt die EigenschaftObjectzurück.Implementierung. Wenn diese Eigenschaft das
Implements-Schlüsselwort verwendet, muss die enthaltende Klasse oder Struktur über eineImplements-Anweisung verfügen, die unmittelbar nach derClass-Anweisung oderStructure-Anweisung folgt. DieImplements-Anweisung muss jede inimplementslistangegebene Schnittstelle enthalten. Der Name, mit dem eine SchnittstelleProperty(indefinedname) definiert, muss jedoch nicht mit dem Namen dieser Eigenschaft (inname) identisch sein.
Verhalten
Rückgabe aus einer Eigenschaftenprozedur. Wenn die
Get- oderSet-Prozedur an den aufrufenden Code zurückgegeben wird, wird die Ausführung mit der Anweisung fortgesetzt, die auf die Anweisung folgt, die sie aufgerufen hat.Die
Exit Property- undReturn-Anweisungen führen zum sofortigen Beenden einer Eigenschaftenprozedur. Eine beliebige Anzahl vonExit Property- undReturn-Anweisungen kann an einer beliebigen Stelle in der Prozedur auftreten, und Sie könnenExit Property- undReturn-Anweisungen mischen.Rückgabewert. Um einen Wert aus einer
Get-Prozedur zurückzugeben, können Sie den Wert entweder dem Eigenschaftsnamen zuweisen oder ihn in eineReturn-Anweisung einschließen. Im folgenden Beispiel wird der Rückgabewert dem EigenschaftsnamenquoteForTheDayzugewiesen, und anschließend wird dieExit Property-Anweisung für die Rückgabe verwendet.Private quoteValue As String = "No quote assigned yet."ReadOnly Property QuoteForTheDay() As String Get QuoteForTheDay = quoteValue Exit Property End Get End PropertyWenn Sie
Exit Propertyverwenden, ohnenameeinen Wert zu zuweisen, gibt dieGet-Prozedur den Standardwert für den Datentyp der Eigenschaft zurück.Die
Return-Anweisung weist gleichzeitig den Rückgabewert derGet-Prozedur zu und beendet die Prozedur. Im folgenden Beispiel wird dies veranschaulicht.Private quoteValue As String = "No quote assigned yet."ReadOnly Property QuoteForTheDay() As String Get Return quoteValue End Get End Property
Beispiel
Im folgenden Beispiel wird eine Eigenschaft in einer Klasse deklariert.
Class Class1
' Define a local variable to store the property value.
Private propertyValue As String
' Define the property.
Public Property Prop1() As String
Get
' The Get property procedure is called when the value
' of a property is retrieved.
Return propertyValue
End Get
Set(ByVal value As String)
' The Set property procedure is called when the value
' of a property is modified. The value to be assigned
' is passed in the argument to Set.
propertyValue = value
End Set
End Property
End Class
Parametrisierte Eigenschaften
Das folgende Beispiel zeigt, wie Sie eine parametrisierte Eigenschaft erstellen, die auch als Indexer bezeichnet wird, wodurch arrayähnlicher Zugriff auf eine Auflistung ermöglicht wird:
Class SampleCollection
' Define a local collection to store strings.
Private items As New List(Of String)
' Define a parameterized property (indexer) for the collection.
Default Public Property Item(ByVal index As Integer) As String
Get
' Return the item at the specified index.
If index >= 0 AndAlso index < items.Count Then
Return items(index)
Else
Return Nothing
End If
End Get
Set(ByVal value As String)
' Set the item at the specified index.
If index >= 0 AndAlso index < items.Count Then
items(index) = value
ElseIf index = items.Count Then
' Allow adding new items at the end.
items.Add(value)
End If
End Set
End Property
' Add a Count property for convenience.
Public ReadOnly Property Count As Integer
Get
Return items.Count
End Get
End Property
' Add method to add items.
Public Sub Add(ByVal item As String)
items.Add(item)
End Sub
End Class
Umfassende Beispiele für die Verwendung von Eigenschaften, einschließlich automatischer Implementierung, gemischter Zugriffsebenen und Validierungsszenarien, finden Sie unter Property Procedures.
Siehe auch
Eigenschaftentypen und -features
- Automatisch implementierte Eigenschaften
- Eigenschaftenprozeduren
- Vorgehensweise: Erstellen einer Eigenschaft
Erweiterte Eigenschaftsszenarien
- Vorgehensweise: Deklarieren und Aufrufen einer Standardeigenschaft in Visual Basic
- Vorgehensweise: Deklarieren einer Eigenschaft mit gemischten Zugriffsebenen