Condividi tramite


Modifiche alle proprietà predefinite per gli utenti di Visual Basic 6.0

Aggiornamento: novembre 2007

In Visual Basic 2008 il supporto della proprietà predefinita è stato aggiornato per semplificare le operazioni e migliorare la leggibilità.

Visual Basic 6.0

In Visual Basic 6.0 le proprietà predefinite sono supportate per gli oggetti. La proprietà predefinita per un controllo Label, ad esempio, è Caption e le due assegnazioni riportate nell'esempio seguente sono equivalenti:

Dim lbl As Label 
lbl = "Important" 
lbl.Caption = "Important" 

Anche se consentono di velocizzare la scrittura di codice Visual Basic, le proprietà predefinite presentano numerosi svantaggi:

  • La lettura del codice può risultare più difficoltosa. Nel caso dell'esempio precedente, se non si ha familiarità con il controllo Label non è possibile stabilire in base alla prima assegnazione se la stringa "Important" viene memorizzata direttamente nella variabile lbl o in una proprietà predefinita.

  • Quando si intende utilizzare un oggetto nel codice non è sempre facile scoprire se a tale oggetto è associata una proprietà predefinita e, in caso affermativo, di quale proprietà si tratti.

  • Le proprietà predefinite rendono necessaria l'istruzione Set nel linguaggio Visual Basic. Nell'esempio seguente viene illustrato come l'istruzione Set sia necessaria per indicare che occorre assegnare un riferimento oggetto e non una proprietà predefinita.

    Dim lbl1 As Label, lbl2 As Label 
    lbl1 = "Saving" ' Assign a value to lbl1's Caption property. 
    lbl2 = lbl1       ' Replace lbl2's Caption property with lbl1's. 
    Set lbl2 = lbl1   ' Replace lbl2 with an object reference to lbl1. 
    

Visual Basic 2008

In Visual Basic 2008 le proprietà predefinite non sono supportate a meno che non accettino argomenti. A causa di tale modifica della sintassi, le istruzioni Let e Set non sono necessarie per specificare quali elementi occorra assegnare e non vengono utilizzate nelle istruzioni di assegnazione. La proprietà Text sostituisce la proprietà Caption per il controllo Label ed è possibile riscrivere l'esempio precedente come mostrato di seguito.

Dim L1, L2 As New Label   ' Both become type Label
                          ' in the new version of Visual Basic.
L1.Text = "Saving"        ' Assign Text property. 
L2.Text = L1.Text         ' Copy Text property. 
L2 = L1                   ' Copy object reference.

In Visual Basic 2008 la parola Let è ancora riservata, anche se non ha alcun utilizzo sintattico. Ciò consente di evitare confusioni con i significati precedenti. In Visual Basic 2008 l'istruzione Set viene utilizzata per routine Property che impostano il valore di una proprietà.

Proprietà con parametri

In Visual Basic 2008 le proprietà predefinite che accettano argomenti non sono ambigue e sono supportate. Le proprietà predefinite vengono in genere utilizzate per classi Collection. Nello spazio dei nomi System.Windows.Forms, ad esempio, la classe Form supporta la seguente gerarchia:

oggetto Form

   proprietà Controls   (restituisce un oggetto Control.ControlCollection per il form)

      oggetto Control.ControlCollection   (la proprietà predefinita è Item)

         proprietà Item  (restituisce un oggetto Control per un elemento dell'insieme)

            oggetto Control

La proprietà Controls restituisce un oggetto Control.ControlCollection e la proprietà Item restituisce un oggetto Control. Nell'esempio seguente vengono illustrati gli utilizzi validi e non validi delle proprietà predefinite in Visual Basic 2008.

Dim F As New Form   ' Assume F has been created and initialized.
F.Controls.Item(0).Text = "Stop"  ' Valid -- no default properties used. 
F.Controls(0).Text = "Stop"  ' Valid -- Item is parameterized. 
'F(0).Text = "Stop"  ' INVALID -- Form does not have a default property. 
'F.Controls(0) = "Stop"  ' INVALID -- No default property on Control. 

Dichiarazione di proprietà predefinite

In Visual Basic 2008 è possibile specificare una proprietà come proprietà predefinita iniziando la relativa dichiarazione con la parola chiave Default. Se si esegue l'overload del nome della proprietà, è necessario specificare Default in ogni dichiarazione di overload. Non è possibile dichiarare una proprietà predefinita come Shared o Private.

Vedere anche

Concetti

Modifiche alle routine delle proprietà per gli utenti di Visual Basic 6.0

Riepilogo delle modifiche al supporto degli elementi di programmazione

Riferimenti

Text

Label

Istruzione Set (Visual Basic)

System.Windows.Forms

Form

Control.ControlCollection

Control

Default (Visual Basic)