Set-Anweisung (Visual Basic)

Deklariert eine Set -Eigenschaftsprozedur, die zum Zuweisen eines Werts zu einer Eigenschaft verwendet wird.

Syntax

[ <attributelist> ] [ accessmodifier ] Set [([ByVal value [ As datatype ]])]  
    [ statements ]  
End Set  

Bestandteile

attributelist
Optional. Siehe Attributliste.

accessmodifier
Optional für höchstens eine der Get- und Set-Anweisungen in dieser Eigenschaft. Dabei kann es sich um eine der folgenden Methoden handeln:

Siehe Access levels in Visual Basic.

value
Optional. Parameter, der den neuen Wert für die Eigenschaft enthält. Wenn nicht angegeben (d. h., wenn die Parameterliste nicht vorhanden oder leer ist), wird ein impliziter Parameter mit dem Namen value definiert. Der Datentyp dieses impliziten Parameters ist der Datentyp der Eigenschaft, in der diese Set-Anweisung deklariert wird.

datatype
Erforderlich, wenn value vorhanden ist und Option Strict ist On. Kann nicht vorhanden sein, wenn value nicht angegeben wird. Der Datentyp des value-Parameters. Der angegebene Datentyp muss mit dem Datentyp der Eigenschaft identisch sein, in der diese Set-Anweisung deklariert wird.

statements
Optional. Mindestens eine Anweisung, die ausgeführt wird, wenn die Set-Eigenschaftenprozedur aufgerufen wird.

End Set
Erforderlich. Beendet die Definition der Set-Eigenschaftenprozedur.

Bemerkungen

Jede Eigenschaft muss über eine Set-Eigenschaftenprozedur verfügen, es sei denn, die Eigenschaft ist als ReadOnly gekennzeichnet . Die Set-Prozedur wird verwendet, um den Wert der Eigenschaft festzulegen.

Visual Basic ruft die Prozedur einer Eigenschaft Set automatisch auf, wenn eine Zuordnungsanweisung einen Wert bereitstellt, der in der Eigenschaft gespeichert werden soll.

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. Der 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.

Der Text der Eigenschaftendeklaration kann nur die Get- und Set-Prozeduren der Eigenschaft zwischen der Eigenschaftenanweisung und der End Property-Anweisung enthalten. Es kann nichts anderes als diese Prozeduren gespeichert werden. Insbesondere kann der aktuelle Wert der Eigenschaft nicht gespeichert werden. Sie müssen diesen Wert außerhalb der Eigenschaft speichern, denn wenn Sie ihn in einer der Eigenschaftenprozeduren speichern, kann die andere Eigenschaftenprozedur nicht darauf zugreifen. Der übliche Ansatz besteht darin, den Wert in einer Private-Variablen zu speichern, die auf derselben Ebene wie die Eigenschaft deklariert wird. Sie müssen eine Set-Prozedur in der Eigenschaft definieren, für die sie gilt.

Die Set-Prozedur verwendet standardmäßig die Zugriffsebene ihrer enthaltenden Eigenschaft, es sei denn, Sie verwenden accessmodifier in der Set-Anweisung.

Regeln

  • Gemischte Zugriffsebenen. Wenn Sie eine Lese-/Schreibeigenschaft definieren, können Sie optional eine andere Zugriffsebene für die Get- oder Set-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 als Friend deklariert ist, können Sie die Set-Prozedur als Private deklarieren, aber nicht als Public.

    Wenn Sie eine WriteOnly-Eigenschaft definieren, stellt die Set-Prozedur die gesamte Eigenschaft dar. Sie können keine andere Zugriffsebene für Set deklarieren, da dadurch zwei Zugriffsebenen für die Eigenschaft festgelegt würden.

Verhalten

  • Wird von einer Eigenschaftsprozedur zurückgegeben. Wenn die Set-Prozedur an den aufrufenden Code zurückgegeben wird, wird die Ausführung nach der Anweisung fortgesetzt, die den zu speichernden Wert bereitgestellt hat.

    Set Eigenschaftsprozeduren können entweder mithilfe der Return-Anweisung oder der Exit-Anweisung zurückgegeben werden.

    Die Exit Property- und Return-Anweisungen führen zum sofortigen Beenden einer Eigenschaftenprozedur. Sie können beliebig viele Exit Property- und Return-Anweisungen überall in der Prozedur verwenden und dabei auch Exit Property- und Return-Anweisungen mischen.

Beispiel

Im folgenden Beispiel wird die Set-Anweisung verwendet, um den Wert einer Eigenschaft festzulegen.

Class propClass
    Private propVal As Integer
    Property Prop1() As Integer
        Get
            Return propVal
        End Get
        Set(ByVal value As Integer)
            propVal = value
        End Set
    End Property
End Class

Weitere Informationen