Section courante

A propos

Section administrative du site

Les indexeurs

Les indexeurs offre la possibilité de traiter une classe comme si c'était un tableau. Ainsi, on pourra utiliser les opérateurs «[» et «]» sur la classe afin de simuler le comportement d'un tableau. De cette façon, lorsqu'on utilisera l'indexeur, il n'y aura aucune différence perceptible pour le programmeur ou une aucun changement de syntaxe pour remplacer un tableau par un indexeur dans son code. Pour définir un indexeur, on utilisera une méthode nommé «this» et indiquera les dimensions d'un tableau qu'il s'agit de paramètre. On aura donc une syntaxe comme ceci :

class maclasse {
   /* ... */
   public typededonnees this[typededonnees variable]
   /* ... */

}

Exemple

L'exemple suivant simule un tableau en lecture seulement pour l'affichage des noms des chiffres :

  1. using System;
  2.  
  3. namespace IndexeurSamples
  4. {
  5.  
  6.     class MonIndex
  7.     {
  8.         public MonIndex()
  9.         {
  10.         }
  11.  
  12.         public string this[int index]
  13.         {
  14.             get
  15.             {
  16.                 switch (index)
  17.                 {
  18.                     case 0: return "Zéro";
  19.                     case 1: return "Un";
  20.                     case 2: return "Deux";
  21.                     case 3: return "Trois";
  22.                     case 4: return "Quatre";
  23.                     case 5: return "Cinq";
  24.                     case 6: return "Six";
  25.                     case 7: return "Sept";
  26.                     case 8: return "Huit";
  27.                     case 9: return "Neuf";
  28.                     case 10: return "Dix";
  29.                     case 11: return "Onze";
  30.                     case 12: return "Douze";
  31.                     default: return "";
  32.                 }
  33.             }
  34.             set
  35.             {
  36.                 Console.WriteLine("Impossible de modifier la valeur !");
  37.             }
  38.         }
  39.  
  40.     }
  41.  
  42.     class Program
  43.     {
  44.         static void Main(string[] args)
  45.         {
  46.             MonIndex nombre = new MonIndex();
  47.             for (int i = 0; i < 12; i++) {
  48.                 Console.WriteLine(nombre[i]);
  49.             }
  50.         }
  51.     }
  52. }

on obtiendra le résultat suivant :

Zéro
Un
Deux
Trois
Quatre
Cinq
Six
Sept
Huit
Neuf
Dix
Onze


Dernière mise à jour : Dimanche, le 17 août 2014