using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Linq; using System.Text; using System.Collections; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Zoo coucou = new Zoo(); coucou.Donner__a_manger(); coucou.TuVeuxVoir(); } public static void Afficher(object texte) { Console.Write((string)texte+"\n"); } } //[NonSerialized] interface IAnimal { void move(); void eat(); String Getname(); void Setname(String nom); } interface IMammal : IAnimal { void accoucher(); } interface IReptile :IAnimal { void pondre(); } public class lion : IMammal { private String _name; public String Getname() { return _name; } public void Setname(String nom) { _name = nom; } public void move() {Program.Afficher("le lion " + Getname() + " marche");} public void eat() {Program.Afficher("le lion "+_name+" mange");} public void accoucher() {Program.Afficher("c'est l'histooooiiiiire de la viiiiiiee");} } public class cow : IMammal { private String _name; public String Getname() { return _name; } public void Setname(String nom) { _name = nom; } public void move() {Program.Afficher("la vache "+_name+" marche");} public void eat() {Program.Afficher("la vache "+_name+" mange");} public void accoucher() {Program.Afficher("meuuuhhhhh"); } } public class snake : IReptile { private String _name; public String Getname() { return _name; } public void Setname(String nom) { _name = nom; } public void move() {Program.Afficher("le serpent "+_name+" rampe");} public void eat() {Program.Afficher("le serpent "+_name+" mords");} public void pondre() {Program.Afficher("plop"); } } public class lizard : IReptile { private String _name; public String Getname() { return _name; } public void Setname(String nom) { _name = nom; } public void move() {Program.Afficher("le lézard "+_name+" se carapate");} public void eat() {Program.Afficher("le lézard "+_name+" utilise l'attaque de la langue");} public void pondre() {Program.Afficher("poup le lézard");} } public class platypus : IMammal { private String _name; public String Getname() { return _name; } public void Setname(String nom) { _name = nom; } public void move() {Program.Afficher("l'hybride "+_name+" marche");} public void eat() {Program.Afficher("l'hybride "+_name+" croque");} public void accoucher() { Program.Afficher("coin !");} } public class Zoo { private ArrayList AnimalList = new ArrayList(); public Zoo() { lion Lion1 = new lion(); Lion1.Setname("Mufassa"); lion Lion2 = new lion(); Lion2.Setname("Scar"); cow Vache1 = new cow(); Vache1.Setname("Milka"); cow Vache2 = new cow(); Vache2.Setname("qui rit"); snake Serpent1 = new snake(); Serpent1.Setname("Snaaaaaake"); snake Serpent2 = new snake(); Serpent2.Setname("Snnnaaaaaaaakkkkkke"); lizard Lezard1 = new lizard(); Lezard1.Setname("Salamèche"); lizard Lezard2 = new lizard(); Lezard2.Setname("Dracofeu"); platypus Orni1 = new platypus(); Orni1.Setname("Psykocwak"); platypus Orni2 = new platypus(); Orni2.Setname("Coin"); AnimalList.Add(Lion1); AnimalList.Add(Lion2); AnimalList.Add(Vache1); AnimalList.Add(Vache2); AnimalList.Add(Serpent1); AnimalList.Add(Serpent2); AnimalList.Add(Lezard1); AnimalList.Add(Lezard2); AnimalList.Add(Orni1); AnimalList.Add(Orni2); PrintValues(); } public void Donner__a_manger() { IEnumerator Enum = AnimalList.GetEnumerator(); Console.Write("\n"); while (Enum.MoveNext()) { ( (IAnimal)Enum.Current).eat(); } } public void TuVeuxVoir() { IEnumerator Enum = AnimalList.GetEnumerator(); Console.Write("\n"); while (Enum.MoveNext()) { ((IAnimal)Enum.Current).move(); } } public void PrintValues() { IEnumerator Enum = AnimalList.GetEnumerator(); Console.Write("\n"); int i = 0; while (Enum.MoveNext()) { i++; Console.Write(i+"/ " ); Console.Write(((IAnimal)Enum.Current).Getname()); Console.Write("\n"); } } } }