Utilizzo degli insiemi per gestire più oggetti
Aggiornamento: novembre 2007
In questa lezione verrà descritto come utilizzare un insieme per gestire gruppi di oggetti.
In una lezione precedente sono state fornite informazioni sull'utilizzo delle matrici per la gestione di gruppi di variabili. Nonostante sia possibile utilizzare le matrici per gestire gruppi di oggetti, in Visual Basic è disponibile anche un tipo speciale di oggetto denominato insieme che consente di archiviare e recuperare gruppi di oggetti simili.
Come nel caso delle matrici, ogni elemento in un oggetto Collection dispone di un indice utilizzabile a scopo identificativo. Inoltre, ogni elemento in un oggetto Collection dispone di una chiave, ovvero un valore String utilizzabile sempre a scopo identificativo. Il vantaggio derivante dall'utilizzo di una chiave è che non è necessario ricordare l'indice dell'elemento ed è possibile utilizzare un nome significativo per fare riferimento all'elemento.
Creazione di un insieme
Gli insiemi risultano utili quando il programma utilizza più istanze della stessa classe. Nel caso ad esempio della classe Players creata in una lezione precedente, per rappresentare una squadra di baseball sarà probabilmente necessario utilizzare più oggetti Players.
Il primo passaggio da eseguire per creare un insieme consiste nel creare un'istanza di un oggetto Collection come illustrato nella seguente dichiarazione.
Dim baseballTeam As New Collection
Dopo avere creato l'oggetto Collection, è possibile utilizzare il metodo Add per aggiungere nuovi elementi e il metodo Remove per rimuovere elementi esistenti. Quando si aggiunge un elemento, specificare innanzitutto l'elemento desiderato, quindi indicare il valore String da utilizzare come chiave.
baseballTeam.Add(playerObject, "Player's Name")
Quando si rimuove un elemento, utilizzare la chiave per specificare l'elemento da eliminare.
baseballTeam.Remove("Player's Name")
Nella procedura riportata di seguito verranno aggiunti due nuovi oggetti Players, quindi verrà creato un insieme team a cui saranno aggiunti gli oggetti Players utilizzando la proprietà Position come chiave.
Procedura
Per creare un insieme di oggetti
Aprire il progetto Persons creato nella lezione precedente. Se questo progetto non è stato salvato, tornare alla lezione precedente Creazione di una classe in base a una classe esistente: utilizzo dell'ereditarietà e completare le procedure indicate.
In Esplora soluzioni selezionare il nodo Form1.vb nel progetto PlayerTest, quindi scegliere Codice dal menu Visualizza.
Nell'editor di codice aggiungere quanto riportato di seguito nella sezione delle dichiarazioni (sotto la dichiarazione di player2).
Dim player3 As New Persons.Players Dim player4 As New Persons.Players Dim team As New Collection
Aggiungere alla routine evento Form1_Load il codice riportato di seguito.
With player3 .FirstName = "Eduardo" .LastName = "Saavedra" .Number = 52 .Position = "First Base" End With With player4 .FirstName = "Karl" .LastName = "Jablonski" .Number = 22 .Position = "Pitcher" End With team.Add(player1, player1.Position) team.Add(player2, player2.Position) team.Add(player3, player3.Position) team.Add(player4, player4.Position)
In Esplora soluzioni selezionare il nodo Form1.vb nel progetto PlayerTest, quindi scegliere Finestra di progettazione dal menu Visualizza.
Dalla Casella degli strumenti trascinare un controllo ComboBox nel form.
Nella finestra Proprietà selezionare la proprietà Items e fare clic sul pulsante con i puntini di sospensione (…).
Nell'editor dell'insieme String immettere il codice riportato di seguito, quindi scegliere OK.
Catcher
First Base
Pitcher
Shortstop
Fare doppio clic sul controllo ComboBox per aprire l'editor di codice, quindi immettere il codice riportato di seguito nel gestore eventi ComboBox1_SelectedIndexChanged.
Dim SelectedPlayer As Persons.Players SelectedPlayer = team(ComboBox1.SelectedItem) MsgBox("Playing " & ComboBox1.SelectedItem & " is " & _ SelectedPlayer.FullName & "!")
Premere F5 per eseguire il programma. Selezionare una posizione nell'elenco a discesa. Il giocatore assegnato a tale posizione verrà visualizzato in una finestra di messaggio.
Passaggi successivi
In questa lezione è stato descritto come utilizzare un oggetto Collection per gestire un gruppo di oggetti. A questo punto è possibile leggere ulteriori informazioni sugli insiemi in Informazioni dettagliate: utilizzo di un ciclo For Each...Next in un insieme oppure proseguire con la serie successiva di lezioni contenenti informazioni sulla creazione di controlli personalizzati.
Lezione successiva: Oggetti visibili: creazione di un controllo utente
Vedere anche
Attività
Informazioni dettagliate: utilizzo di un ciclo For Each...Next in un insieme
Informazioni dettagliate: override dei membri
Creazione di una classe in base a una classe esistente: utilizzo dell'ereditarietà
Concetti
Classe degli insiemi di Visual Basic