Indexeurs (Guide de programmation C#)

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

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 la Spécification du langage C#. La spécification du langage est la source de référence pour la syntaxe C# et son utilisation.

Voir aussi

Référence

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

Concepts

Guide de programmation C#