Istruzione Set (Visual Basic)
Dichiara una routine Set
di proprietà utilizzata per assegnare un valore a una proprietà.
Sintassi
[ <attributelist> ] [ accessmodifier ] Set (ByVal value [ As datatype ])
[ statements ]
End Set
Parti
attributelist
facoltativo. Vedere Elenco attributi.
accessmodifier
Facoltativo su al massimo una delle Get
istruzioni Set
e in questa proprietà. Può essere uno dei seguenti:
Vedere Livelli di accesso in Visual Basic.
value
Obbligatorio. Parametro contenente il nuovo valore per la proprietà.
datatype
Obbligatorio se Option Strict
è On
. Tipo di dati del value
parametro. Il tipo di dati specificato deve corrispondere al tipo di dati della proprietà in cui viene Set
dichiarata questa istruzione.
statements
facoltativo. Una o più istruzioni eseguite quando viene chiamata la Set
routine della proprietà.
End Set
Obbligatorio. Termina la definizione della routine Set
della proprietà.
Commenti
Ogni proprietà deve avere una routine di proprietà, a Set
meno che la proprietà non sia contrassegnata come ReadOnly
. La Set
routine viene utilizzata per impostare il valore della proprietà .
Visual Basic chiama automaticamente la routine di una Set
proprietà quando un'istruzione di assegnazione fornisce un valore da archiviare nella proprietà.
Visual Basic passa un parametro alla routine durante Set
le assegnazioni di proprietà. Se non si specifica un parametro per Set
, l'ambiente di sviluppo integrato (IDE) usa un parametro implicito denominato value
. Il parametro contiene il valore da assegnare alla proprietà . Questo valore viene in genere archiviato in una variabile locale privata e restituito ogni volta che viene Get
chiamata la routine.
Il corpo della dichiarazione di proprietà può contenere solo le routine e della proprietà tra l'istruzione Get
Set
Get
l'istruzione End Property
. Non può archiviare elementi diversi da tali procedure. In particolare, non può archiviare il valore corrente della proprietà. È necessario archiviare questo valore all'esterno della proprietà, perché se lo si archivia all'interno di una delle routine della proprietà, l'altra routine della proprietà non può accedervi. L'approccio consueto consiste nell'archiviare il valore in una variabile private dichiarata allo stesso livello della proprietà . È necessario definire una Set
routine all'interno della proprietà a cui si applica.
Per Set
impostazione predefinita, la routine viene impostata sul livello di accesso della relativa proprietà contenitore, a meno che non si usi accessmodifier
nell'istruzione Set
.
Regole
Livelli di accesso misti. Se si definisce una proprietà di lettura/scrittura,
Get
Set
è possibile specificare facoltativamente un livello di accesso diverso per la routine o , ma non per entrambi. In questo caso, il livello di accesso alla procedura deve essere più restrittivo del livello di accesso della proprietà. Ad esempio, se la proprietà è dichiarataFriend
, è possibile dichiarare laSet
routinePrivate
, ma nonPublic
.Se si definisce una proprietà
WriteOnly
, laSet
routine rappresenta l'intera proprietà. Non è possibile dichiarare un livello di accesso diverso perSet
, perché verrebbero impostati due livelli di accesso per la proprietà .
Comportamento
Restituzione da una routine di proprietà. Quando la
Set
routine torna al codice chiamante, l'esecuzione continua dopo l'istruzione che ha fornito il valore da archiviare.Set
Le routine property possono restituire utilizzandoSet
o Exit Statement.Le
Exit Property
istruzioniReturn
e causano un'uscita immediata da una routine di proprietà. Qualsiasi numero diExit Property
istruzioniReturn
e può essere presente in qualsiasi punto della procedura ed è possibile combinareExit Property
Return
le istruzioni e .
Esempio
Nell'esempio seguente viene utilizzata l'istruzione Set
per impostare il valore di una proprietà .
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