POO – Indexeur direct à 2 paramètres d’une classe

Programmez en orienté objet en C Sharp



Objectif : Définir et utiliser un indexeur direct à un et à deux paramètres dans une classe nommée “classeArticles”, contenant des noms d’articles rangés dans un tableau de chaînes “string[ ] article” et  pour chaque nom du tableau “article” la classe associe un code numérique entier  rangé dans un tableau ” int[ ] codeArticle “. Le rangement du code s’effectue dans une cellule du tableau codeArticle dont l’indice est égal au hashcode du nom de l’article.

Dans l’exemple ci-dessous la classe classeArticles contient deux articles “chien” et”pied” stockés dans le tabeau “article” le code de l’article chien vaut 98, celui de l’article pied vaut 57, en supposant que le hashcode du mot chien ait pour valeur 1 et que le hashcode du mot pied ait pour valeur 4, 1e code 98 est rangé dans la cellule de rang 1 du tableau codeArticle, le code 57 est rangé dans la cellule de rang 4 du tableau codeArticle

Question :

Construire deux surcharges d’indexeur de la classe classeArticles :

  • La surcharge à un paramètre “int  numArt” est en lecture et écriture et permet d’accéder à un article par son rang dans le tableau article ou bien de ranger un nouvel article avec un code associé.
  • La surcharge à deux paramètres “int  numArt, int  numCode” est en lecture seulement, elle permet de vérifier l’existence d’un article lorsque l’on donne son rang “numArt” dans le tableau article et le rang supposé du code “numCode” de cet article dans le tableau codeArticle.


class 
classeArticles
{
private string [ ] article =  new string [10];
private int [ ] codeArticle =  new int [10];

public string this [ int  numArt,  int  numCode]
   {
   get     {      }
    }
public string this [ int  numArt]
   {
    get     {   lit l’article de rang numArt du tableau article    }
set    range la string dans le tableau article au rang numArt
                     et range dans le tableau codeArticle le code de la string
                     au rang
obtenu par hashcode de cette string  }
    }
 }