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
- oderSet
-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 alsFriend
deklariert ist, können Sie dieSet
-Prozedur alsPrivate
deklarieren, aber nicht alsPublic
.Wenn Sie eine
WriteOnly
-Eigenschaft definieren, stellt dieSet
-Prozedur die gesamte Eigenschaft dar. Sie können keine andere Zugriffsebene fürSet
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
- undReturn
-Anweisungen führen zum sofortigen Beenden einer Eigenschaftenprozedur. Sie können beliebig vieleExit Property
- undReturn
-Anweisungen überall in der Prozedur verwenden und dabei auchExit Property
- undReturn
-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