Condividi tramite


Istruzione Property

Dichiara il nome di una proprietà e le routine della proprietà utilizzate per archiviare e recuperare il valore della proprietà.

[ <attributelist> ] [ Default ] [ accessmodifier ] 
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ] [ Iterator ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]
    [ <attributelist> ] [ accessmodifier ] Get
        [ statements ]
    End Get
    [ <attributelist> ] [ accessmodifier ] Set ( ByVal value As returntype [, parameterlist ] )
        [ statements ]
    End Set
End Property
- or -
[ <attributelist> ] [ Default ] [ accessmodifier ] 
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ] 
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]

Parti

Termine

Definizione

attributelist

Opzionale. Elenco di attributi applicabili a questa proprietà o alla routine Get o Set. Vedere Elenco degli attributi.

Default

Opzionale. Specifica che la proprietà è quella predefinita per la classe o la struttura su cui è definita. Nelle proprietà predefinite è obbligatoria l'accettazione di parametri ed è possibile impostare e recuperare tali proprietà senza specificarne il nome. Se la proprietà è dichiarata predefinita Default, non è possibile utilizzare l'oggetto Private sulla proprietà né sulle sue routine.

accessmodifier

Utilizzo facoltativo sull'istruzione Property e su solo una delle istruzioni Get e Set. ad esempio uno dei seguenti:

Vedere Livelli di accesso in Visual Basic.

propertymodifiers

Opzionale. ad esempio uno dei seguenti:

Shared

Opzionale. Vedere Shared (Visual Basic).

Shadows

Opzionale. Vedere Shadows (Visual Basic).

ReadOnly

Opzionale. Vedere ReadOnly (Visual Basic).

WriteOnly

Opzionale. Vedere WriteOnly (Visual Basic).

Iterator

Opzionale. Vedere iteratore.

name

Necessario. Nome della proprietà. Vedere Nomi di elementi dichiarati (Visual Basic).

parameterlist

Opzionale. Elenco di nomi di variabili locali che rappresentano i parametri della proprietà e gli eventuali parametri aggiuntivi della routine Set. Vedere Elenco dei parametri (Visual Basic).

returntype

Obbligatorio se Option Strict è On. Tipo di dati del valore restituito dalla proprietà.

Implements

Opzionale. Indica che la proprietà ne implementa un'altra o più, ciascuna delle quali viene definita in un'interfaccia implementata dalla classe o dalla struttura che contengono la proprietà. Vedere Istruzione Implements.

implementslist

Obbligatoria se viene fornita Implements. Elenco delle proprietà implementate.

implementedproperty [ , implementedproperty ... ]

Ogni implementedproperty presenta la sintassi e le parti seguenti:

interface.definedname

Parte

Descrizione

interface

Necessario. Nome di un'interfaccia implementata dalla classe o dalla struttura che contengono la proprietà.

definedname

Necessario. Nome mediante il quale la proprietà viene definita in interface.

Get

Opzionale. Obbligatorio se la proprietà è contrassegnata come WriteOnly. Avvia una routine della proprietà Get che viene utilizzata per restituire il valore della proprietà.

statements

Opzionale. Blocco di istruzioni da eseguire nella routine Get o Set.

End Get

Termina la routine della proprietà Get.

Set

Opzionale. Obbligatorio se la proprietà è contrassegnata come ReadOnly. Avvia una routine della proprietà Set che viene utilizzata per archiviare il valore della proprietà.

End Set

Termina la routine della proprietà Set.

End Property

Termina la definizione della proprietà.

Note

La dichiarazione di una proprietà viene introdotta dall'istruzione Property. A una proprietà possono essere associate una routine Get (sola lettura), una routine Set (solo scrittura), o entrambe (lettura-scrittura). È possibile omettere le routine Get e Set in caso di utilizzo di una proprietà implementata automaticamente. Per ulteriori informazioni, vedere Proprietà implementate automaticamente (Visual Basic).

È possibile utilizzare Property solo a livello di classe. In altri termini, il contesto della dichiarazione per una proprietà deve essere una classe, una struttura, un modulo o un'interfaccia e non può essere un file di origine, uno spazio dei nomi, una routine o un blocco. Per ulteriori informazioni, vedere Contesti delle dichiarazioni e livelli di accesso predefiniti (Visual Basic).

Per impostazione predefinita, le proprietà utilizzano l'accesso pubblico. È possibile regolare il livello di accesso di una proprietà mediante un modificatore di accesso sull'istruzione Property ed è anche possibile impostare un livello di accesso più restrittivo per una delle procedure 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. Questo 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.

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 viene definita una proprietà ReadOnly o WriteOnly, questa proprietà viene interamente rappresentata dalla routine della proprietà (rispettivamente, Get o Set). Poichè verrebbero impostati due livelli di accesso per la proprietà, non è possibile dichiarare un livello diverso di accesso per questa routine.

  • Tipo restituito. L'istruzione Property può dichiarare il tipo di dati del valore che restituisce. È possibile specificare qualsiasi tipo di dati o il nome di un'enumerazione, struttura, classe o interfaccia.

    Se non si specifica il parametro returntype, la proprietà restituisce il tipo Object.

  • Implementazione. Se la proprietà utilizza la parola chiave Implements, nella classe o nella struttura che la contiene deve essere presente un'istruzione Implements immediatamente dopo la relativa istruzione Class o Structure. Nell'istruzione Implements deve essere compresa ogni interfaccia specificata in implementslist. Non è necessario che il nome con cui l'interfaccia definisce la proprietà Property in definedname sia identico al nome della proprietà in name.

Comportamento

  • Chiusura di una routine della proprietà. Quando la routine Get o Set torna al codice chiamante, l'esecuzione prosegue con l'istruzione successiva a quella che ha eseguito la richiamata.

    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.

  • Valore restituito. Per restituire un valore da una routine Get, è possibile assegnare il valore al nome della proprietà oppure includerlo in un'istruzione Return. Nell'esempio seguente il valore restituito viene assegnato al nome della proprietà quoteForTheDay e viene quindi utilizzata l'istruzione Exit Property per chiudere la routine e tornare al codice chiamante.

    Private quoteValue As String = "No quote assigned yet."
    
    ReadOnly Property quoteForTheDay() As String 
        Get
            quoteForTheDay = quoteValue
            Exit Property 
        End Get 
    End Property
    

    Se si utilizza l'istruzione Exit Property senza assegnare un valore a name, la routine Get restituisce il valore predefinito per il tipo di dati della proprietà.

    L'istruzione Return assegna il valore restituito della routine Get e contemporaneamente consente di uscire dalla routine. Questa operazione viene illustrata nell'esempio che segue.

    Private quoteValue As String = "No quote assigned yet."
    
    ReadOnly Property quoteForTheDay() As String 
        Get 
            Return quoteValue
        End Get 
    End Property
    

Esempio

Nell'esempio seguente una proprietà viene dichiarata in una classe.

Class Class1
    ' Define a local variable to store the property value. 
    Private propertyValue As String 
    ' Define the property. 
    Public Property prop1() As String 
        Get 
            ' The Get property procedure is called when the value 
            ' of a property is retrieved. 
            Return propertyValue
        End Get 
        Set(ByVal value As String)
            ' The Set property procedure is called when the value  
            ' of a property is modified.  The value to be assigned 
            ' is passed in the argument to Set.
            propertyValue = value
        End Set 
    End Property 
End Class

Vedere anche

Riferimenti

Istruzione Get

Istruzione Set (Visual Basic)

Elenco dei parametri (Visual Basic)

Default (Visual Basic)

Concetti

Proprietà implementate automaticamente (Visual Basic)

Altre risorse

Oggetti e classi in Visual Basic