Guide e Tutorials:indexed | ||||||||
L'oggetto Collection (Articolo completo) Attraverso l'oggetto Collection è possibile raggruppare più dati di tipo diverso in un singolo insieme (l'oggetto Collection, per l'appunto) in modo tale da aver a che fare solamente con un elemento, ossia l'insieme che li contiene. Questo rappresenta una grossa comodità in fase di sviluppo visto che Collection non solo garantisce un maggior ordine nel codice, ma propone tutti i vantaggi di una matrice senza alcune limitazioni. Prima di tutto i tipi di dati di cui si parlava poc'anzi: Byte, Boolean, Integer, Long, Currency, Decimal, Single, Double, Date, String, Object, Variant per citare i gruppi fondamentali. I tipi definiti dall'utente, nonché i tipi specifici di oggetto nel caso si utilizzino tipi di dati non espressamente previsti dal linguaggio. Un'istanza dell'oggetto Collection viene creato con le stesse modalità degli altri oggetti, ossia dichiarandolo come mostra la seguente linea di codice:
Altro codice è però necessario per aggiungere degli elementi o membri all'insieme. Si dovrà in questo caso utilizzare il metodo Add. Ecco la sintassi:
dove OggettoCollection è l'insieme al quale si desidera assegnare un nuovo membro, item è un'espressione di qualsiasi tipo che specifica il membro da aggiungere all'insieme, key è un identificatore ossia espressione (in questo caso in forma di stringa) utile ad identificare e ad estrarre il membro dell'insieme. before e after indicano invece la posizione relativa nell' insieme: si può infatti estrarre un elemento in base alla posizione occupata dall'elemento che precede e a quello che segue. Indicando before il membro da aggiungere viene posizionato nell'insieme prima del membro identificato dall'argomento before, indicando after il membro da aggiungere viene posizionato nell'insieme dopo del membro identificato dall'argomento after. Facciamo un esempio. Per dimostrare la versatilità dell'oggetto Collection in fatto di tipi di dati supportati, aggiungiamo all'insieme l'oggetto che rappresenta un'istanza della sessione di lavoro Excel.
Naturalmente per non generare un'errore sarà necessario importare nel progetto i riferimenti alla libreria corrispondente, sebbene non sia espressamente necessario nel codice esaminato. Entriamo un po' più nello specifico. Quando utilizzare le variabili di tipo Variant? In generale le regole di assegnazione di un membro al tipo di dato Variant segue le regole specifiche del linguaggio (necessità di non assegnare volontariamente un dato ad una variabile specifica). Se ad esempio ad un dato Variant, prima di essere introdotto in una Collection, viene assengato un valore Integer, la Collection conterrà un Integer ma niente impedirà al momento dell'estrazione di mutare tale membro in un qualsiasi altro tipo di dato. Si supponga ad esempio di avere una casella di testo nel quale l'utente dovrà inserire un numero. Alla pressione di un pulsante il numero viene moltiplicato per due. Siccome i dati contenuti in una TextBox sono in forma di stringa, la variabile Variant corrispondente a TextBox1.Text sarà considerata come String e quindi una moltiplicazione genererà l'errore 'Tipo non corrispondente'. Terminata questa parentesi, proseguiamo l'analisi dell'oggetto. La rimozione dei dati avviene avvalendosi del metodo Remove che ha la seguente sintassi:
dove index rappresenta l'indice univoco assegnato al momento dell'inclusione del membro nell'insieme. Ultimo metodo supportato è Item che restituisce un elemento in base all'indice assegnatogli. La sintassi è la seguente:
Unica proprietà dell'oggetto Collection è Count che permette di calcolare il totale degli elementi presenti nella collezione. Ecco la sintassi:
Altro discorso vale per il ciclo For Each...Next per il quale è possibile eseguire un loop tra gli elementi dell'insieme, utilizzando una sintassi del tipo:
Per cui sarà ad esempio possibile prendere uno ad uno gli elementi della collezione per verificarne le proprietà, per aggiungerli ad un controllo ListBox e così via. |
Archivio:ndexed | ||||
Lezioni | Commenta questa lezione | Invia la tua guida | Avviso per le nuove lezioni | Proponi un argomento |
Visual Basic Italia© copyright 2000 - tutti i diritti riservati |