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: |
||||||
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
|
||||||
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
Elenco dei parametri (Visual Basic)
Concetti
Proprietà implementate automaticamente (Visual Basic)