Cherchez un indexeur dans la classe.
C# vous permet de définir des indexeurs pour permettre ce type d'accès.
Voici un exemple tiré du guide officiel pour "SampleCollection".
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;
}
}
Voici la définition de la spécification officielle de la langue :
Un site indexeur est un membre qui permet aux objets d'être indexés de la même manière qu'un tableau. Un indexeur est déclaré comme une propriété sauf que le nom du membre est this suivi d'une liste de paramètres écrits entre les délimiteurs [ et ]. Les paramètres sont disponibles dans le ou les accesseurs de l'indexeur. Comme les propriétés, les indexeurs peuvent être en lecture-écriture, en lecture seule ou en écriture seule, et les accesseurs d'un indexeur peuvent être virtuels.
On peut trouver la définition complète et exhaustive dans la section 10.9 Répertoires de la spécification.