Share via


Indicizzatori (Guida per programmatori C#)

Aggiornamento: novembre 2007

Gli indicizzatori consentono di indicizzare le istanze di una classe o di una struttura allo stesso modo delle matrici. Differiscono dalle proprietà solo per il fatto che le relative funzioni di accesso utilizzano i parametri.

Nell'esempio seguente viene definita una classe generica e vengono quindi aggiunti semplici metodi delle funzioni di accesso get e set per consentire l'assegnazione e il recupero dei valori. La classe Program crea un'istanza di questa classe per l'archiviazione delle stringhe.

class SampleCollection<T>
{
    private T[] arr = new T[100];
    public T this[int i]
    {
        get
        {
            return arr[i];
        }
        set
        {
            arr[i] = value;
        }
    }
}

// This class shows how client code uses the indexer
class Program
{
    static void Main(string[] args)
    {
        SampleCollection<string> stringCollection = new SampleCollection<string>();
        stringCollection[0] = "Hello, World";
        System.Console.WriteLine(stringCollection[0]);
    }
}

Cenni preliminari sugli indicizzatori

  • Gli indicizzatori consentono di eseguire l'indicizzazione degli oggetti in modo simile a quanto avviene per le matrici.

  • Una funzione di accesso get restituisce un valore. Una funzione di accesso set assegna un valore.

  • La parola chiave this viene utilizzata per definire gli indicizzatori.

  • La parola chiave value viene utilizzata per definire il valore assegnato dall'indicizzatore set.

  • Non è necessario che il valore assegnato dagli indicizzatori sia di tipo integer. Spetta al programmatore definire lo specifico meccanismo di ricerca.

  • È possibile eseguire l'overload degli indicizzatori.

  • Gli indicizzatori possono avere più parametri formali, ad esempio durante l'accesso a una matrice bidimensionale.

Sezioni correlate

Specifiche del linguaggio C#

Per ulteriori informazioni, vedere le seguenti sezioni in Specifiche del linguaggio C#:

  • 1.6.7.3 Indicizzatori

  • 10.2.9.3 Nomi dei membri riservati per gli indicizzatori

  • 10.9 Indicizzatori

  • 13.2.4 Indicizzatori dell'interfaccia

Vedere anche

Concetti

Guida per programmatori C#

Riferimenti

Proprietà (Guida per programmatori C#)