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 s in arrPersonnes.InOrder)
System.Console.WriteLine(s);
}
}
Copyright Patrick Smacchia 2006 2007
|