Condividi tramite


Insiemi in Visual Basic

Aggiornamento: novembre 2007

In generale, un insieme può essere definito un oggetto utilizzato per raggruppare e gestire oggetti correlati. Ogni Form ad esempio è dotato di un insieme di controlli. È possibile accedere a questo insieme tramite la proprietà Controls del form. Questo insieme è un oggetto che rappresenta tutti i controlli di quel form e consente di recuperare un controllo dell'insieme in base all'indice e di scorrere in ciclo gli elementi utilizzando un Istruzione For Each...Next (Visual Basic).

Esistono tuttavia diversi tipi di insiemi che si differenziano tra loro in vari modi.

Tipi di insiemi diversi

In Visual Basic viene inoltre fornita una classe Collection con la quale è possibile definire e creare insiemi personalizzati. Analogamente all'insieme Controls di un form, la classe Collection è dotata di una funzionalità incorporata che consente di scorrere in ciclo gli elementi utilizzando For Each...Next e di fare riferimento agli elementi in base all'indice. Per ulteriori informazioni, vedere Oggetto Collection (Visual Basic).

I due tipi di insiemi, tuttavia, non interagiscono tra loro. Il codice seguente, ad esempio, genera un errore di compilazione.

Dim localControls As Collection

' The following line generates a COMPILER ERROR.

localControls = Me.Controls()

Gli insiemi sono incompatibili in quanto l'insieme Controls è un insieme .NET Framework, mentre la variabile localControls è un Collection di Visual Basic. I due tipi di insiemi vengono implementati da classi diverse. I metodi sono simili ma non identici, mentre gli schemi di indicizzazione sono diversi.

Insiemi in base zero e in base uno

Un insieme può essere a base zero o a base uno, a seconda dell'indice iniziale. Nel primo caso, l'indice del primo elemento dell'insieme sarà 0, mentre nel secondo caso sarà 1. Un esempio di insieme a base zero è l'insieme .NET FrameworkControls, esaminato in precedenza. L'oggetto Collection di Visual Basic è un esempio di insieme a base uno.

L'utilizzo degli insiemi a base uno può essere più intuitivo per gli utenti di Visual Basic in quanto l'indice è compreso tra 1 e il valore della Proprietà Count (oggetto Collection), che restituisce il numero di elementi in un insieme. L'indice di un insieme a base zero, invece, è compreso tra zero e uno meno il valore della proprietà Count. Può essere appropriato quando si esegue l'offset dei valori di indice da un valore base o quando questi corrispondono ai membri di un'enumerazione a base 1.

Gli insiemi .NET Framework sono a base zero ai fini della standardizzazione. La classe Visual BasicCollection è a base 1 ai fini della compatibilità con le versioni precedenti.

Valori di indice e chiave

Le istanze della classe Visual BasicCollection consentono di accedere a un elemento tramite un indice numerico o una chiave String. È possibile aggiungere elementi agli oggetti Collection di Visual Basic specificando o meno una chiave. Se si aggiunge un elemento senza una chiave, è necessario utilizzarne l'indice numerico per averne accesso.

Gli insiemi come System.Collections.ArrayList invece consentono solo un indice numerico. Non è possibile associare le chiavi agli elementi di questi insiemi, a meno che non si costruisca una mappatura personale basata, ad esempio, su una matrice String contenente le chiavi.

Aggiunta e rimozione di elementi

Gli insiemi si differenziano tra loro anche per la possibilità di aggiungervi elementi e, ove applicabile, per la modalità di aggiunta degli elementi. L'oggettoCollection di Visual Basic essendo uno strumento generico di programmazione, è più flessibile di altri sistemi. Comprende un Metodo Add (oggetto Collection) per l'inserimento degli elementi in un insieme e un Metodo Remove (oggetto Collection) per l'estrazione degli elementi.

Alcuni insiemi specializzati, invece, non consentono di aggiungere o rimuovere elementi mediante il codice. La proprietà CheckedListBox.CheckedItems ad esempio restituisce un insieme di riferimenti agli elementi in base all'indice, ma non consente al codice di aggiungere o rimuovere elementi dall'insieme. Tale operazione è consentita solo all'utente, tramite la selezione o la deselezione della casella appropriata nell'interfaccia utente. Questo insieme non dispone di un metodo Add o Remove.

Vedere anche

Attività

Procedura: creare un insieme di oggetti

Procedura: creare una matrice di oggetti

Procedura: aggiungere, eliminare e recuperare elementi in un insieme

Procedura: definire insiemi nelle classi

Procedura: scorrere un insieme in Visual Basic

Risoluzione dei problemi relativi agli insiemi

Concetti

Gestione di gruppi di oggetti

Classe degli insiemi di Visual Basic

Gestione di oggetti con insiemi