Indexeur

Vous modélisez un indexeur C# en utilisant un attribut étendu avec le stéréotype <<Indexer>>. Un autre attribut ayant le stéréotype <<IndexerImplementation>> est automatiquement créé, il s'affiche avec un trait de soulignement dans la liste des attributs. Les opérations getter et setter correspondantes sont également automatiquement créées.

Vous pouvez supprimer l'attribut de mise en oeuvre.

Si vous supprimez à la fois les opérations getter et setter, l'attribut n'a plus le stéréotype <<Indexer>>.

Lorsque vous définissez un attribut <<Indexer>>, le caractère modifiable ou non et les opérations getter/setter sont intimement liés comme indiqué dans le tableau suivant :

Opérations

Caractère modifiable de l'attribut Indexer

Si vous conservez les opérations getter et setter

Indexer est Modifiable

Si vous supprimez l'opération setter d'une propriété modifiable

Indexer devient Lecture seule

Si vous supprimez l'opération getter d'une propriété modifiable

Indexer devient Lecture seule

D'un autre côté, si vous changez le caractère modifiable ou non de l'indexeur, les opérations refléteront ce changement, par exemple si vous transformez un indexeur modifiable en indexeur en lecture seule, l'opération setter est automatiquement supprimée.

Dans l'exemple suivant, la classe Person contient un attribut <<Indexer>> Item. Le paramètre utilisé pour trier la propriété est String name :



public class Person
{
 private Hashtable _childAges;
 // Indexer Item
 private int this[String name]
 {
  get
  {
   return (int)_ChildAges[name];
  }
  set
  {
    _ChildAges[name] = value;
  }
 }
}
Person someone;
someone ["Alice"] = 3;
someone ["Elvis"] = 5;

Le tableau suivant répertorie les différents modificateurs d'indexeur pris en charge dans PowerAMC :

Modificateur de propriété C#

Equivalent PowerAMC

New

Attribut étendu New défini à True

Usafe

Attribut étendu Usafe défini à True

Virtual

Attribut étendu Virtual défini à True

Override

Attribut étendu Override défini à True

Extern

Attribut étendu Extern défini à True

Abstract

Attribut étendu Abstract défini à True

Sealed

Attribut étendu Sealed défini à True

Paramètres

Saisissez une valeur dans la zone Valeur de l'attribut étendu Paramètres d'indexeur afin de spécifier quelle valeur de l'attribut de propriété doit être utilisée comme paramètre.