Property Statement
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
attributelist
Optional. Die Liste der Attribute, die für diese Eigenschaft oder die
Get
- oderSet
-Prozedur gelten. Siehe Attributliste.Default
Optional. 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
Default
deklarieren, können SiePrivate
weder für die Eigenschaft noch für eine der zugehörigen Eigenschaftenprozeduren verwenden.accessmodifier
Optional für die
Property
-Anweisung und höchstens eine derGet
- undSet
-Anweisungen. Dabei kann es sich um eine der folgenden Methoden handeln:propertymodifiers
Optional. Dabei kann es sich um eine der folgenden Methoden handeln:
MustOverride Overrides
NotOverridable Overrides
Shared
Optional. Siehe Shared.
Shadows
Optional. Siehe Shadows.
ReadOnly
Optional. Siehe ReadOnly.
WriteOnly
Optional. Weitere Informationen finden Sie unter WriteOnly.
Iterator
Optional. Weitere Informationen finden Sie unter Iterator.
name
Erforderlich. Der Name der Eigenschaft. Siehe Declared Element Names.
parameterlist
Optional. Liste der Namen der lokalen Variablen, die die Parameter dieser Eigenschaft darstellen, und mögliche zusätzliche Parameter der
Set
-Prozedur. Siehe Parameterliste.returntype
Erforderlich, wenn
Option Strict
On
ist. Datentyp des von dieser Eigenschaft zurückgegebenen Werts.Implements
Optional. 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.
implementslist
Erforderlich, wenn
Implements
angegeben wird. Liste der zu implementierenden Eigenschaften.implementedproperty [ , implementedproperty ... ]
Jede
implementedproperty
weist folgende Syntax und Bestandteile auf:interface.definedname
Teil Beschreibung interface
Erforderlich. Name einer Schnittstelle, die von der Klasse oder Struktur dieser Eigenschaft implementiert wird. definedname
Erforderlich. Name, durch den die Eigenschaft in interface
definiert ist.Get
Optional. Erforderlich, wenn die Eigenschaft als
ReadOnly
markiert ist. Startet eineGet
-Eigenschaftenprozedur, die verwendet wird, um den Wert der Eigenschaft zurückzugeben. DieGet
Anweisung wird nicht mit automatisch implementierten Eigenschaften verwendet.statements
Optional. Block von Anweisungen, die innerhalb der
Get
- oderSet
-Prozedur ausgeführt werden sollen.End Get
Beendet die
Get
-Eigenschaftenprozedur.Set
Optional. Erforderlich, wenn die Eigenschaft als
WriteOnly
markiert ist. Startet eineSet
-Eigenschaftenprozedur, die verwendet wird, um den Wert der Eigenschaft zu speichern. DieSet
Anweisung wird nicht mit automatisch implementierten Eigenschaften verwendet.End Set
Beendet die
Set
-Eigenschaftenprozedur.End Property
Beendet 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.
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 alsFriend
deklariert ist, können Sie dieSet
-Prozedur alsPrivate
deklarieren, aber nicht alsPublic
.Wenn Sie eine
ReadOnly
- oderWriteOnly
-Eigenschaft definieren, stellt die einzelne Eigenschaftenprozedur (Get
bzwSet
) 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
returntype
nicht angeben, gibt die EigenschaftObject
zurü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 inimplementslist
angegebene 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 EigenschaftsnamenquoteForTheDay
zugewiesen, 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 Property
Wenn Sie
Exit Property
verwenden, ohnename
einen 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