Istruzione Set (Visual Basic)

Aggiornamento: novembre 2007

Consente di dichiarare una routine della proprietà Set utilizzata per assegnare un valore a una proprietà.

[ <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à e può essere ad esempio uno dei seguenti:

    Per informazioni, vedere Livelli di accesso in Visual Basic.

  • value
    Obbligatorio. Parametro contenente il nuovo valore della proprietà.

  • datatype
    Obbligatorio se Option Strict è On. Tipo di dati del parametro value. È necessario che sia uguale al tipo di dati della proprietà nella quale viene dichiarata l'istruzione Set.

  • statements
    Facoltativo. Una o più istruzioni che vengono eseguite quando viene chiamata la routine della proprietà Set.

  • End Set
    Obbligatorio. Consente di terminare la definizione della routine della proprietà Set.

Note

Ogni proprietà deve avere una routine della proprietà Set a meno che la proprietà stessa non sia contrassegnata come ReadOnly. La routine Set viene utilizzata per impostare il valore della proprietà.

Quando un'istruzione di assegnazione fornisce un valore da memorizzare nella proprietà, in Visual Basic viene automaticamente chiamata la routine Set della proprietà.

In Visual Basic un parametro viene passato alla routine Set durante le assegnazioni di proprietà. Se non si fornisce un parametro per Set, un parametro implicito denominato value verrà utilizzato dall'ambiente di sviluppo integrato. Il parametro contiene il valore da assegnare alla proprietà. In genere tale valore viene memorizzato in una variabile locale privata e viene restituito ogni volta che viene chiamata la routine Get.

All'interno del corpo della dichiarazione di proprietà possono essere contenute solo le routine Get e Set della proprietà fra le istruzioni Istruzione Property e End Property. Non è possibile memorizzare altro all'infuori di queste routine. In particolare, non è possibile memorizzare il valore corrente della proprietà. Questo valore va memorizzarlo al di fuori della proprietà. Se lo si inserisce all'interno di una delle routine infatti, l'altra non potrà accedervi. In genere questo valore viene memorizzato in una variabile Private (Visual Basic) dichiarata allo stesso livello della proprietà. È necessario definire una routine Set all'interno della proprietà a cui viene applicata.

Per impostazione predefinita, la routine Set utilizza il livello di accesso della proprietà che la contiene a meno che non si utilizzi accessmodifier nell'istruzione Set.

Regole

  • Livelli di accesso misto. Quando si definisce una proprietà di lettura-scrittura, è possibile specificare facoltativamente un livello di accesso diverso per la routine Get o Set, ma non per entrambe. Il livello di accesso della routine deve essere più restrittivo rispetto a quello della proprietà. Ad esempio, se la proprietà è dichiarata Friend, è possibile dichiarare la procedura Set come Private, ma non come Public.

    Se si definisce una proprietà WriteOnly, la routine Set rappresenta l'intera proprietà. Non è possibile dichiarare un livello di accesso diverso per Set, poiché in tal caso verrebbero impostati due livelli di accesso per la proprietà.

Comportamento

  • Chiusura di una routine della proprietà. Quando la routine Set torna al codice chiamante, l'esecuzione continua seguendo l'istruzione che ha fornito il valore da memorizzare.

    Le routine della proprietà Set possono essere chiuse tramite Istruzione Return (Visual Basic) o Istruzione Exit (Visual Basic).

    Le istruzioni Exit Property e Return consentono di uscire immediatamente da una routine della proprietà. È possibile inserire un numero illimitato di istruzioni Exit Property e Return in qualsiasi punto di una routine, così come combinare le istruzioni.

Esempio

Nell'esempio seguente l'istruzione Set viene utilizzata 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

Vedere anche

Attività

Procedura: aggiungere campi e proprietà a una classe

Riferimenti

Istruzione Get

Istruzione Property

Istruzione Sub (Visual Basic)