Indexeurs (Guide de programmation C#)

Mise à jour : novembre 2007

Les indexeurs permettent aux instances d'une classe ou d'un struct d'être indexées exactement comme des tableaux. Les indexeurs sont semblables aux propriétés, à la différence que leurs accesseurs acceptent des paramètres.

Dans l'exemple suivant, une classe générique est définie et dotée des méthodes d'accesseur get et set pour l'assignation et la récupération des valeurs. La classe Program crée une instance de cette classe pour le stockage de chaînes.

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]);
    }
}

Vue d'ensemble des indexeurs

  • Les indexeurs permettent à un objet d'être indexé d'une manière semblable aux tableaux.

  • Un accesseur get retourne une valeur. Un accesseur set assigne une valeur.

  • Le mot clé this permet de définir les indexeurs.

  • Le mot clé value sert à définir la valeur assignée par l'indexeur set.

  • Il n'est pas nécessaire d'indexer les indexeurs par une valeur entière ; vous avez toute liberté pour définir le mécanisme de consultation que vous souhaitez mettre en place.

  • Les indexeurs peuvent être surchargés.

  • Par exemple, les indexeurs peuvent avoir plusieurs paramètres formels lors de l'accès à un tableau à deux dimensions.

Rubriques connexes

Spécification du langage C#

Pour plus d'informations, consultez les sections suivantes dans Spécifications du langage C#.

  • Indexeurs 1.6.7.3

  • 10.2.9.3 Noms de membres réservés pour les indexeurs

  • 10,9 Indexeurs

  • 13.2.4 Indexeurs d'interface

Voir aussi

Concepts

Guide de programmation C#

Référence

Propriétés (Guide de programmation C#)