Property-Anweisung
Deklariert den Namen einer Eigenschaft sowie die Eigenschaftenprozeduren zum Speichern und Abrufen des Werts der Eigenschaft.
[ <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 ]
Teile
Begriff |
Definition |
attributelist |
Dies ist optional.Liste der Attribute, die für diese Eigenschaft, die Get-Prozedur oder die Set-Prozedur zutreffen.Siehe Attributliste. |
Default |
Dies ist 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 Sie Private weder für die Eigenschaft noch für eine ihrer Eigenschaftenprozeduren verwenden. |
accessmodifier |
Optional für die Property-Anweisung und für höchstens eine der Get-Anweisungen und Set-Anweisungen.Einer der folgenden Werte ist möglich: |
propertymodifiers |
Dies ist optional.Einer der folgenden Werte ist möglich:
|
Shared |
Dies ist optional.Siehe Shared (Visual Basic). |
Shadows |
Dies ist optional.Siehe Shadows (Visual Basic). |
ReadOnly |
Dies ist optional.Siehe ReadOnly (Visual Basic). |
WriteOnly |
Dies ist optional.Siehe WriteOnly (Visual Basic). |
Iterator |
Dies ist optional.Siehe Iterator. |
name |
Erforderlich.Der Name der Eigenschaft.Siehe Namen deklarierter Elemente (Visual Basic). |
parameterlist |
Dies ist optional.Die Liste der Namen lokaler Variablen, die die Parameter dieser Eigenschaft darstellen, und mögliche zusätzliche Parameter der Set-Prozedur.Siehe Parameterliste (Visual Basic). |
returntype |
Erforderlich, wenn OptionStrict auf On festgelegt ist.Datentyp des Werts, der von dieser Eigenschaft zurückgegeben wird. |
Implements |
Dies ist optional.Gibt an, dass diese Eigenschaft eine oder mehrere Eigenschaften implementiert, deren jede in einer durch die enthaltende Klasse oder Struktur dieser Eigenschaft implementierten Schnittstelle definiert ist.Siehe Implements-Anweisung. |
implementslist |
Erforderlich, wenn Implements angegeben wird.Die Liste der implementierten Eigenschaften. implementedproperty [ , implementedproperty ... ] Jede implementedproperty hat folgende Syntax und folgende Bestandteile: interface.definedname
BestandteilDescription
interface Erforderlich.Der Name einer Schnittstelle, der von der enthaltenden Klasse oder Struktur dieser Eigenschaft implementiert wird.
definedname Erforderlich.Der Name, mit dem die Eigenschaft in interface definiert ist.
|
Get |
Dies ist optional.Erforderlich, wenn die Eigenschaft als WriteOnly markiert ist.Startet eine Get-Eigenschaftenprozedur, die den Wert der Eigenschaft zurückgibt. |
statements |
Dies ist optional.Block von Anweisungen, die in der Get-Prozedur oder der Set-Prozedur ausgeführt werden sollen. |
End Get |
Beendet die Get-Eigenschaftenprozedur. |
Set |
Dies ist optional.Erforderlich, wenn die Eigenschaft als ReadOnly markiert ist.Startet eine Set-Eigenschaftenprozedur, die den Wert der Eigenschaft speichert. |
End Set |
Beendet die Set-Eigenschaftenprozedur. |
End Property |
Beendet die Definition dieser Eigenschaft. |
Hinweise
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 beide Prozeduren (Lese-/Schreibzugriff) verfügen.Beim Verwenden einer automatisch implementierten Eigenschaft müssen die Get-Prozedur und die Set-Prozedur nicht angegeben werden.Weitere Informationen finden Sie unter Automatisch implementierte Eigenschaften (Visual Basic).
Property kann nur auf Klassenebene verwendet werden.Dies bedeutet, dass der Deklarationskontext für eine Eigenschaft eine Klasse, eine Struktur, ein Modul oder eine Schnittstelle sein muss und keine Quelldatei, kein Namespace, keine Prozedur und kein Block sein kann.Weitere Informationen finden Sie unter Deklarationskontexte und Standardzugriffsebenen (Visual Basic).
Für Eigenschaften ist standardmäßig öffentlicher Zugriff festgelegt.Sie können die Zugriffsebene einer Eigenschaft mit einem Zugriffsmodifizierer für die Property-Anweisung ändern und optional eine ihrer Eigenschaftenprozeduren auf eine restriktivere Zugriffsebene festlegen.
Visual Basic übergibt bei Eigenschaftenzuweisungen einen Parameter an die Set-Prozedur.Wenn Sie keinen Parameter für Set angeben, verwendet die integrierte Entwicklungsumgebung (IDE) den impliziten Parameter value.Dieser Parameter enthält den der Eigenschaft zuzuweisenden Wert.Sie speichern diesen Wert i. d. R. in einer privaten lokalen Variablen und geben ihn bei jedem Aufruf der Get-Prozedur zurück.
Regeln
Gemischte Zugriffsebenen. Wenn Sie eine Eigenschaft mit Schreib-/Lesezugriff definieren, können Sie optional entweder für die Get-Prozedur oder für die Set-Prozedur, jedoch nicht für beide Prozeduren, eine andere Zugriffsebene festlegen.Wenn Sie auf diese Weise vorgehen, muss die Zugriffsebene der Prozedur restriktiver als die Zugriffsebene der Eigenschaft sein.Wenn beispielsweise die Eigenschaft als Friend deklariert ist, können Sie die Set-Prozedur als Private, jedoch nicht als Public deklarieren.
Wenn Sie eine ReadOnly-Eigenschaft oder eine WriteOnly-Eigenschaft definieren, stellt die Eigenschaftenprozedur (Get bzw. Set) die gesamte Eigenschaft dar.Sie können für solch eine Prozedur keine andere Zugriffsebene deklarieren, da hierdurch zwei Zugriffsebenen für die Eigenschaft festgelegt werden.
Rückgabetyp. Die Property-Anweisung kann den Datentyp des Werts deklarieren, den sie zurückgibt.Sie können einen beliebigen Datentyp oder den Namen einer Enumeration, Struktur, Klasse oder Schnittstelle angeben.
Wenn Sie keinen Wert für returntype angeben, gibt die Eigenschaft Object zurück.
Implementierung. Wenn die Eigenschaft das Implements-Schlüsselwort verwendet, muss auf die Class-Anweisung oder die Structure-Anweisung der enthaltenden Klasse oder Struktur direkt eine Implements-Anweisung folgen.Die Implements-Anweisung muss jede in implementslist angegebene Schnittstelle enthalten.Der Name, mit dem eine Schnittstelle die Property (in definedname) definiert, muss jedoch nicht mit dem Namen dieser Eigenschaft (in name) übereinstimmen.
Verhalten
Beenden einer Eigenschaftenprozedur. Wenn die Get-Prozedur oder die Set-Prozedur zum aufrufenden Code zurückkehrt, wird die Ausführung mit der Anweisung fortgesetzt, die auf die Anweisung folgt, die die Prozedur aufgerufen hat.
Die Exit Property-Anweisung und die Return-Anweisung führen zur unmittelbaren Beendigung einer Eigenschaftenprozedur.In der Prozedur können beliebig viele Exit Property-Anweisungen und Return-Anweisungen an beliebiger Stelle vorkommen, und Sie können Exit Property-Anweisungen und Return-Anweisungen kombinieren.
Rückgabewert. Der Wert einer Get-Prozedur wird zurückgegeben, indem Sie den Wert dem Eigenschaftennamen zuweisen oder ihn in eine Return-Anweisung einfügen.Im folgenden Beispiel wird der Rückgabewert dem Eigenschaftennamen quoteForTheDay zugewiesen und dann mit der Exit Property-Anweisung zurückgegeben.
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, ohne name einen Wert zuzuweisen, gibt die Get-Prozedur den Standardwert für den Datentyp der Eigenschaft zurück.
Die Return-Anweisung weist der Get-Prozedur den Rückgabewert zu und beendet sie gleichzeitig.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
Siehe auch
Referenz
Konzepte
Automatisch implementierte Eigenschaften (Visual Basic)