Bonjour,

soit le code suivant

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
 
 List<Animal> animaux = new List<Animal>();
                    Animal chien_1 = new Chien();
 
                    Animal chat_1 = new Chat();
 
                    Animal animal_1 = new Animal();
 
                    Chien chien_2 = new Chien();
Soit l'instruction suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
 
 Object c3 = chien_1 as Chien;
si je teste ce qu'est c3, j'obtiens bien l'affichage "le c3 est bien un Animal" et "le c3 est bien un Chien".
Je comprends bien car la classe Chien dérive de la classe Animal et donc tout Chien est un Animal.

Mais du fait que c3 pointe uniquement vers les méthodes de la classe Object, cela est en contradiction avec le fait qu'il est un Animal et un Chien!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
 if (c3 is Animal) { Console.WriteLine("le c3 est bien un Animal"); }
 
  if (c3 is Chien) { Console.WriteLine("le c3 est bien un Chien"); }
L'affichage ci-dessus est donc un peu trompeur car c3 est , selon moi un simple Object.

Merci de me dire ce que vous en pensez

Bien cordialement.

new_wave