IList, ObservableCollection, polymorphisme et cast
Bonjour,
J'ai un petit souci et je ne comprends pas pourquoi.
Soient A et B deux classes avec B qui héritent de A
J'ai une liste déclarée comme suis :
Code:
IList<B>listeDeB = new ObservableCollection<B>();
J'ai une méthode avec le prototype suivant :
Code:
void MaMethode(IList<A> uneListe);
Je n'arrive pas à faire
Code:
MaMethode(listeDeB);
(methode has some invalide argument).
Déjà là je ne comprends pas bien, puisque B hérite de A, je devrais pouvoir l'appeler, mais admettons. Je caste donc ma liste ainsi :
Code:
MaMethode((IList<A>)listeDeB)
et là j'obtiens :
Unable to cast object of type 'System.Collections.ObjectModel.ObservableCollection to type 'System.Collections.Generic.IList
Hum... Quelqu'un peut m'expliquer ?