Property-Anweisung

Deklariert den Namen einer Eigenschaft und die Eigenschaftenprozeduren, die zum Speichern und Abrufen des Wertes einer Eigenschaft verwendet werden.

[ <attributelist> ] [ Default ] [ accessmodifier ] 
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ] 
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

Ausdruck

Definition

attributelist

Optional. Liste der Attribute, die für diese Eigenschaft, die Get-Prozedur oder die Set-Prozedur zutreffen. 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 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:

Weitere Informationen finden Sie unter Zugriffsebenen in Visual Basic.

propertymodifiers

Optional. Einer der folgenden Werte ist möglich:

Shared

Optional. Weitere Informationen finden Sie unter Shared (Visual Basic).

Shadows

Optional. Weitere Informationen finden Sie unter Shadows (Visual Basic).

ReadOnly

Optional. Weitere Informationen finden Sie unter ReadOnly (Visual Basic).

WriteOnly

Optional. Weitere Informationen finden Sie unter WriteOnly (Visual Basic).

name

Erforderlich. Der Name der Eigenschaft. Weitere Informationen finden Sie unter Namen deklarierter Elemente (Visual Basic).

parameterlist

Optional. Die Liste der Namen lokaler Variablen, die die Parameter dieser Eigenschaft darstellen, und mögliche zusätzliche Parameter der Set-Prozedur. Weitere Informationen finden Sie unter Parameterliste (Visual Basic).

returntype

Erforderlich, wenn Option Strict auf On festgelegt ist. Datentyp des Werts, der von dieser Eigenschaft zurückgegeben wird.

Implements

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. Weitere Informationen finden Sie unter 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

BestandteilBeschreibungen
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

Optional. Erforderlich, wenn die Eigenschaft als WriteOnly markiert ist. Startet eine Get-Eigenschaftenprozedur, die den Wert der Eigenschaft zurückgibt.

statements

Optional. Block von Anweisungen, die in der Get-Prozedur oder der Set-Prozedur ausgeführt werden sollen.

End Get

Beendet die Get-Eigenschaftenprozedur.

Set

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

Get-Anweisung

Set-Anweisung (Visual Basic)

Parameterliste (Visual Basic)

Default (Visual Basic)

Konzepte

Automatisch implementierte Eigenschaften (Visual Basic)

Weitere Ressourcen

Objekte und Klassen in Visual Basic