Home
Browsez les 647 exemples
Téléchargez les 647 exemples
Téléchargez des chapitres
Achetez sur amazon.fr

Niveau: Débutant/Intermédiaire
ISBN-2-84177-339-6
50 Euros

Exemple 14-36 extrait du chapitre Les mécanismes utilisables dans C#


Exemple 14-35<     > Exemple 14-37


Cet exemple peut être compilé avec la ligne de commande:
csc.exe /target:exe Exemple_14_36.cs
Erreurs: 0 Avertissements: 0
Remarque:


Exemple_14_36.cs
using System.Collections;
public class Personnes {
   private class PersonnesEnumerator : IEnumerator {
      private int index = -1;
      private Personnes P;
      public PersonnesEnumerator(Personnes P){ this.P = P; }
      public bool MoveNext() {
         index++;
         return index < P.m_Noms.Length;
      }
      public void Reset() { index = -1; }
      public object Current { get return P.m_Noms[index]; } }
   }
   private class PersonnesEnumerable : IEnumerable{
      private Personnes m_Personnes;
      internal PersonnesEnumerable(Personnes personnes) { 
         m_Personnes = personnes;
      }
      IEnumerator IEnumerable.GetEnumerator(){
         return new PersonnesEnumerator(m_Personnes);
      }
   }
   public IEnumerable InOrder{ get { 
                         return new PersonnesEnumerable(this); } }

   // La méthode GetEnumerator() de IEnumerable.
   public IEnumerator GetEnumerator(){
      return new PersonnesEnumerator(this);
   }
   string[] m_Noms;
   // Le constructeur qui initialise le tableau.
   public Personnes(params string[] Noms){
      m_Noms = new string[Noms.Length];
      // Copie le tableau.
      Noms.CopyTo(m_Noms, 0);
   }
   // L'indexeur qui retourne le Nom à partir de l'index.
   private string this[int index]{
      get return m_Noms[index]; }
      set { m_Noms[index] = value; }
   }
}
class Program {
   static void Main() {
      Personnes arrPersonnes = new Personnes(
                         "Michel""Christine""Mathieu""Julien");
      foreach (string in arrPersonnes.InOrder)
         System.Console.WriteLine(s);
   }
}	
Copyright Patrick Smacchia 2006 2007