Property-Anweisung

Aktualisiert: November 2007

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

Bestandteile

  • 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:

    Siehe Zugriffsebenen in Visual Basic.

  • propertymodifiers
    Optional. Einer der folgenden Werte ist möglich:

  • Shared
    Optional. Siehe Shared (Visual Basic).

  • Shadows
    Optional. Siehe Shadows.

  • ReadOnly
    Optional. Siehe ReadOnly (Visual Basic).

  • WriteOnly
    Optional. Siehe WriteOnly.

  • name
    Erforderlich. Der Name der Eigenschaft. Siehe Namen deklarierter Elemente.

  • parameterlist
    Optional. Die Liste der Namen lokaler Variablen, die die Parameter dieser Eigenschaft darstellen, und mögliche zusätzliche Parameter der Set-Prozedur. Siehe Parameterliste.

  • returntype
    Erforderlich, wenn OptionStrict 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. 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

    Bestandteil

    Beschreibung

    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
    Erforderlich, es sei denn, die Eigenschaft ist als WriteOnly markiert. 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
    Erforderlich, es sei denn, die Eigenschaft ist als ReadOnly markiert. 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.

Property kann nur auf Modulebene 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.

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

Aufgaben

Gewusst wie: Hinzufügen von Feldern und Eigenschaften zu einer Klasse

Konzepte

Standardeigenschaften

Referenz

Get-Anweisung

Set-Anweisung (Visual Basic)

Parameterliste