Istruzione Set (Visual Basic)
Dichiara una routine di proprietà Set
utilizzata per assegnare un valore a una proprietà.
Sintassi
[ <attributelist> ] [ accessmodifier ] Set [([ByVal value [ As datatype ]])]
[ statements ]
End Set
Parti
attributelist
Facoltativo. Vedere Elenco degli attributi.
accessmodifier
Facoltativo per al massimo una delle istruzioni Get
e Set
in questa proprietà. Può essere uno dei seguenti:
Vedere Access levels in Visual Basic.
value
Facoltativo. Parametro contenente il nuovo valore per la proprietà. Se non viene specificato (ovvero se l'elenco di parametri non è presente o è vuoto), viene definito un parametro implicito denominato value
. Il tipo di dati di questo parametro implicito è il tipo di dati della proprietà in cui viene dichiarata questa istruzione Set
.
datatype
Obbligatorio se value
è presente e Option Strict
è On
. Non può essere presente se value
non viene specificato. Tipo di dati del parametro value
. Il tipo di dati specificato deve essere uguale al tipo di dati della proprietà in cui viene dichiarata questa istruzione Set
.
statements
Facoltativo. Una o più istruzioni in esecuzione quando viene chiamata la routine della proprietà Set
.
End Set
Obbligatorio. Termina la definizione della routine della proprietà Set
.
Osservazioni:
Ogni proprietà deve avere una routine della proprietà Set
a meno che la proprietà non sia contrassegnata come ReadOnly
. La routine Set
viene utilizzata per impostare il valore della proprietà.
Visual Basic chiama automaticamente la routine Set
di una proprietà quando un'istruzione di assegnazione fornisce un valore da archiviare nella proprietà.
Visual Basic passa un parametro alla routine Set
durante 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 chiamata la routine Get
.
Il corpo della dichiarazione di proprietà può contenere solo le routine Get
e Set
della proprietà tra l'istruzione Proprietà e l'istruzione End Property
. Non può archiviare elementi diversi da tali routine. In particolare, non può archiviare il valore corrente della proprietà. Questo valore deve essere archiviato all'esterno della proprietà: perché se viene archiviato all'interno di una delle routine di proprietà, l'altra routine di proprietà non può accedervi. L'approccio consueto consiste nell'archiviare il valore in una variabile Privata dichiarata allo stesso livello della proprietà. È necessario definire una routine Set
all'interno della proprietà a cui si applica.
La routine Set
è per impostazione predefinita sul livello di accesso della proprietà contenitore, a meno che non si utilizzi accessmodifier
nell'istruzione Set
.
Regole
Livelli di accesso misti. Se si sta definendo una proprietà di lettura/scrittura, è possibile specificare facoltativamente un livello di accesso diverso per la routine
Get
o per laSet
, ma non per entrambe. In questo caso, il livello di accesso della routine deve essere più restrittivo del livello di accesso della proprietà. Ad esempio, se la proprietà è dichiarataFriend
, è possibile dichiarare la routineSet
comePrivate
, ma nonPublic
.Se si definisce una proprietà
WriteOnly
, la routineSet
rappresenta l'intera proprietà. Non è possibile dichiarare un livello di accesso diverso perSet
, perché in questo modo per la proprietà verranno impostati due livelli di accesso.
Comportamento
Restituzione da una routine di proprietà. Quando la routine
Set
torna al codice chiamante, l'esecuzione continua seguendo l'istruzione che ha fornito il valore da archiviare.Le routine di proprietà
Set
possono restituire utilizzando l'istruzione return o l'istruzione exit.Le istruzioni
Exit Property
eReturn
determinano un'uscita immediata da una routine della proprietà. Qualsiasi numero di istruzioniExit Property
eReturn
può essere visualizzato in qualsiasi punto della routine, ed è possibile combinare le istruzioniExit Property
eReturn
.
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