Condividi tramite


Istruzione Set (Visual Basic)

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
    Parametro 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:

    Vedere Livelli di accesso in Visual Basic.

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

  • datatype
    Obbligatoria 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
    Parametro 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. Se si definisce una proprietà di lettura/scrittura, è eventualmente possibile specificare 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 archiviare.

    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 di proprietà. Qualsiasi numero delle istruzioni Exit Property e Return può essere visualizzato in un punto qualsiasi della procedura ed è possibile mescolare le istruzioni Exit Property e Return.

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

Riferimenti

Istruzione Get

Istruzione Property

Istruzione Sub (Visual Basic)

Concetti

Routine Property (Visual Basic)