Chapter 19 Travailler avec C#


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.

 


Copyright (C) 2006. Sybase Inc. All rights reserved.