Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Una proprietà predefinita è una proprietà di classe o struttura a cui il codice può accedere senza specificarlo. Quando si chiamano nomi di codice una classe o una struttura ma non una proprietà e il contesto consente l'accesso a una proprietà, Visual Basic risolve l'accesso alla proprietà predefinita di tale classe o struttura, se presente.
Una classe o una struttura può avere al massimo una proprietà predefinita. Tuttavia, è possibile eseguire l'overload di una proprietà predefinita e includerne più di una versione.
Per altre informazioni, vedere Impostazione predefinita.
Per dichiarare una proprietà predefinita
Dichiarare la proprietà nel modo normale. Non specificare la
Shared
parola chiave oPrivate
.Includere la
Default
parola chiave nella dichiarazione di proprietà.Specificare almeno un parametro per la proprietà . Non è possibile definire una proprietà predefinita che non accetta almeno un argomento.
Default Property myProperty(ByVal index As Integer) As String
Per chiamare una proprietà predefinita
Dichiarare una variabile del tipo di classe o struttura contenente.
Dim x As New class1(3)
Usare solo il nome della variabile in un'espressione in cui normalmente si include il nome della proprietà.
MsgBox(x)
Seguire il nome della variabile con un elenco di argomenti tra parentesi. Una proprietà predefinita deve accettare almeno un argomento.
MsgBox(x(1))
Per ottenere il valore predefinito della proprietà, utilizzare il nome della variabile con un elenco di argomenti, in un'espressione oppure dopo il segno di uguale (
=
) in un'istruzione di assegnazione.MsgBox(x(1) & x(2) & x(3))
Per impostare il valore predefinito della proprietà, usare il nome della variabile, con un elenco di argomenti, sul lato sinistro di un'istruzione di assegnazione.
x(1) = "Hello" x(2) = " " x(3) = "World"
È sempre possibile specificare il nome della proprietà predefinito insieme al nome della variabile, esattamente come si farebbe per accedere a qualsiasi altra proprietà.
x.myProperty(1) = "Hello" x.myProperty(2) = " " x.myProperty(3) = "World"
Esempio 1
Nell'esempio seguente viene dichiarata una proprietà predefinita in una classe .
Public Class class1
Private myStrings() As String
Sub New(ByVal size As Integer)
ReDim myStrings(size)
End Sub
Default Property myProperty(ByVal index As Integer) As String
Get
' The Get property procedure is called when the value
' of the property is retrieved.
Return myStrings(index)
End Get
Set(ByVal Value As String)
' The Set property procedure is called when the value
' of the property is modified.
' The value to be assigned is passed in the argument
' to Set.
myStrings(index) = Value
End Set
End Property
End Class
Esempio 2
Nell'esempio seguente viene illustrato come chiamare la proprietà myProperty
predefinita nella classe class1
. Le tre istruzioni di assegnazione archiviano i valori in myProperty
, e la chiamata MsgBox legge i valori.
Sub Test()
Dim x As New class1(3)
x(1) = "Hello"
x(2) = " "
x(3) = "World"
MsgBox(x(1) & x(2) & x(3))
End Sub
L'uso più comune di una proprietà predefinita è la Item[] proprietà in varie classi di raccolte.
Programmazione affidabile
Le proprietà predefinite possono comportare una riduzione ridotta dei caratteri del codice sorgente, ma possono rendere il codice più difficile da leggere. Se il codice chiamante non ha familiarità con la classe o la struttura, quando crea un riferimento alla classe o al nome della struttura non può essere certo se tale riferimento accede alla classe o alla struttura stessa o a una proprietà predefinita. Ciò può causare errori del compilatore o errori di logica di runtime sottili.
È possibile ridurre in qualche modo la probabilità di errori di proprietà predefiniti usando sempre l'istruzione Option Strict per impostare il controllo del tipo del compilatore su On
.
Se si prevede di usare una classe o una struttura predefinita nel codice, è necessario determinare se ha una proprietà predefinita e, in tal caso, qual è il nome.
A causa di questi svantaggi, è consigliabile non definire le proprietà predefinite. Per la leggibilità del codice, è anche consigliabile fare riferimento sempre a tutte le proprietà in modo esplicito, anche le proprietà predefinite.
Vedere anche
- Procedure delle proprietà
- Parametri e argomenti della procedura
- Dichiarazione di proprietà
- Predefinita
- Differenze tra proprietà e variabili in Visual Basic
- Procedura: Creare una proprietà
- Procedura: Dichiarare una proprietà con livelli di accesso misti
- Come fare: Chiamare una procedura di proprietà
- Procedura: Inserire un valore in una proprietà
- Procedura: Ottenere un valore da una proprietà