Property Statement

Deklariert den Namen einer Eigenschaft und die Eigenschaftsprozeduren, die zum Speichern und Abrufen des Werts der Eigenschaft verwendet werden.

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. Liste der Attribute, die für diese Eigenschaft oder GetSet Prozedur gelten. Siehe Attributliste.

  • Default

    Optional. Gibt an, dass diese Eigenschaft die Standardeigenschaft für die Klasse oder Struktur ist, auf der 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 Sie die Eigenschaft oder eine der Eigenschaftenprozeduren nicht verwenden Private .

  • accessmodifier

    Optional für die Property Anweisung und für die meisten Get der Anweisungen Set . Dabei kann es sich um eine der folgenden Methoden handeln:

    Siehe Access levels in Visual Basic.

  • propertymodifiers

    Optional. Dabei kann es sich um eine der folgenden Methoden handeln:

  • Shared

    Optional. Siehe freigegeben.

  • Shadows

    Optional. Siehe Schatten.

  • ReadOnly

    Optional. Siehe ReadOnly.

  • WriteOnly

    Optional. Siehe WriteOnly.

  • Iterator

    Optional. Siehe Iterator.

  • name

    Erforderlich. Der Name der Eigenschaft. Siehe Declared Element Names.

  • parameterlist

    Optional. Liste der lokalen Variablennamen, die die Parameter dieser Eigenschaft darstellen, und mögliche zusätzliche Parameter der Set Prozedur. Siehe Parameterliste.

  • returntype

    Erforderlich, wenn Option Strict es sich um On. Datentyp des von dieser Eigenschaft zurückgegebenen Werts.

  • Implements

    Optional. Gibt an, dass diese Eigenschaft eine oder mehrere Eigenschaften implementiert, die jeweils in einer Schnittstelle definiert sind, die durch die enthaltende Klasse oder Struktur dieser Eigenschaft implementiert wird. Siehe Implements-Anweisung.

  • implementslist

    Erforderlich, wenn Implements angegeben wird. Liste der implementierten Eigenschaften.

    implementedproperty [ , implementedproperty ... ]

    Jede implementedproperty weist folgende Syntax und Bestandteile auf:

    interface.definedname

    Teil BESCHREIBUNG
    interface Erforderlich. Name einer Schnittstelle, die durch die enthaltende Klasse oder Struktur dieser Eigenschaft implementiert wird.
    definedname Erforderlich. Name, nach dem die Eigenschaft definiert interfaceist.
  • Get

    Optional. Erforderlich, wenn die Eigenschaft markiert ReadOnlyist. Startet eine Get Eigenschaftsprozedur, die verwendet wird, um den Wert der Eigenschaft zurückzugeben. Die Get Anweisung wird nicht mit automatisch implementierten Eigenschaften verwendet.

  • statements

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

  • End Get

    Beendet die Get Eigenschaftsprozedur.

  • Set

    Optional. Erforderlich, wenn die Eigenschaft markiert WriteOnlyist. Startet eine Set Eigenschaftsprozedur, die zum Speichern des Werts der Eigenschaft verwendet wird. Die Set Anweisung wird nicht mit automatisch implementierten Eigenschaften verwendet.

  • End Set

    Beendet die Set Eigenschaftsprozedur.

  • 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 (schreibgeschützt) oder beides (Schreibzugriff) verfügen. Sie können die Get Und-Prozedur Set bei Verwendung einer automatisch implementierten Eigenschaft auslassen. Weitere Informationen finden Sie unter Automatisch implementierte Eigenschaften.

Sie können nur auf Klassenebene verwenden Property . Dies bedeutet, dass der Deklarationskontext für eine Eigenschaft eine Klasse, Eine Struktur, ein Modul oder eine Schnittstelle sein muss und keine Quelldatei, ein Namespace, eine Prozedur oder ein Block sein kann. Weitere Informationen finden Sie unter Deklarationskontexte und Standardzugriffsebenen.

Standardmäßig verwenden Eigenschaften den öffentlichen Zugriff. Sie können die Zugriffsstufe einer Eigenschaft mit einem Zugriffsmodifizierer für die Property Anweisung anpassen, und Sie können optional eine seiner Eigenschaftsprozeduren auf eine restriktivere Zugriffsstufe anpassen.

Visual Basic übergibt einen Parameter an die Set Prozedur während der Eigenschaftszuweisungen. Wenn Sie keinen Parameter angeben Set, verwendet die integrierte Entwicklungsumgebung (IDE) einen impliziten Parameter namens value". Dieser Parameter enthält den Wert, der der Eigenschaft zugewiesen werden soll. Normalerweise speichern Sie diesen Wert in einer privaten lokalen Variablen und geben sie zurück, wenn die Get Prozedur aufgerufen wird.

Regeln

  • Gemischte Zugriffsstufen. Wenn Sie eine Lese-/Schreibeigenschaft definieren, können Sie optional eine andere Zugriffsstufe für die Get oder die Set Prozedur angeben, aber nicht beides. Wenn Sie dies tun, muss die Prozedurzugriffsebene restriktiver sein als die Zugriffsstufe der Eigenschaft. Wenn die Eigenschaft beispielsweise deklariert Friendwird, können Sie die Set Prozedur Privatedeklarieren, aber nicht Public.

    Wenn Sie eine Eigenschaft oder eine ReadOnly Eigenschaft definieren, stellt die einzelne Eigenschaft (GetbzwSet. die jeweils) alle Eigenschaften WriteOnly dar. Sie können keine andere Zugriffsstufe für eine solche Prozedur deklarieren, da dies zwei Zugriffsstufen für die Eigenschaft festlegen würde.

  • Rückgabetyp. Die Property Anweisung kann den Datentyp des zurückgegebenen Werts deklarieren. Sie können jeden Datentyp oder den Namen einer Enumeration, Struktur, Klasse oder Schnittstelle angeben.

    Wenn Sie nicht angeben returntype, gibt die Eigenschaft zurück Object.

  • Implementierung. Wenn diese Eigenschaft das Implements Schlüsselwort verwendet, muss die enthaltende Klasse oder Struktur eine Implements Anweisung unmittelbar nach deren Class Oder-Anweisung Structure haben. Die Implements Anweisung muss jede schnittstelle enthalten, die in implementslist. Der Name, durch den eine Schnittstelle die Property (in definedname) definiert, muss jedoch nicht mit dem Namen dieser Eigenschaft (in name) identisch sein.

Verhalten

  • Zurückgeben aus einer Eigenschaftsprozedur. Wenn die GetSet Prozedur an den aufrufenden Code zurückgibt, wird die Ausführung mit der Anweisung fortgesetzt, die die Anweisung folgt, die sie aufgerufen hat.

    Die Exit Property und Return Anweisungen führen zu einem sofortigen Beenden einer Eigenschaftsprozedur. Eine beliebige Anzahl von Exit Property Anweisungen kann überall in der Prozedur angezeigt werden, und Sie können Mischungen Exit Property und ReturnReturn Anweisungen ausführen.

  • Rückgabewert. Um einen Wert aus einer Get Prozedur zurückzugeben, können Sie entweder den Wert dem Eigenschaftennamen zuweisen oder in eine Return Anweisung einschließen. Im folgenden Beispiel wird der Rückgabewert dem Eigenschaftennamen quoteForTheDay zugewiesen und anschließend die Exit Property Anweisung zum Zurückgeben 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 ohne Zuweisen eines Werts einen Wert nameverwendenExit Property, gibt die Get Prozedur den Standardwert für den Datentyp der Eigenschaft zurück.

    Die Return Anweisung weist gleichzeitig den Rückgabewert der Get 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

Siehe auch