Indicizzatori (Guida per programmatori C#)
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>
{
// Declare an array to store the data elements.
private T[] arr = new T[100];
// Define the indexer, which will allow client code
// to use [] notation on the class instance itself.
// (See line 2 of code in Main below.)
public T this[int i]
{
get
{
// This indexer is very simple, and just returns or sets
// the corresponding element from the internal array.
return arr[i];
}
set
{
arr[i] = value;
}
}
}
// This class shows how client code uses the indexer.
class Program
{
static void Main(string[] args)
{
// Declare an instance of the SampleCollection type.
SampleCollection<string> stringCollection = new SampleCollection<string>();
// Use [] notation on the type.
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
Confronto tra proprietà e indicizzatori (Guida per programmatori C#)
Limitazione dell'accessibilità delle funzioni di accesso (Guida per programmatori C#)
Specifiche del linguaggio C#
Per ulteriori informazioni, vedere la Specifiche del linguaggio C#. La specifica del linguaggio è la fonte ufficiale per la sintassi e l'utilizzo di C#.
Vedere anche
Riferimenti
Proprietà (Guida per programmatori C#)