Bonjour,
Ma Liste contient des instances de ma classe ObjetPerso définie comme :
Ensuite j'ai deux autre classes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public class ObjetPerso { private object realObject; private int niveau, . .(Constructeur, accesseurs... Qui vont bien) . }
chacune a un attribut ID.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public class MaClasse1 { private int ID, . .(Constructeur, accesseurs... Qui vont bien) . } public class MaClasse2 { private int ID, . .(Constructeur, accesseurs... Qui vont bien) . }
Ensuite j'ai rempli cette liste :
Mon problème, c'est que quand j'essaie de récupérer l'objet de niveau 2, et ID 1 (Par exemple), sachant que dans mon programme il ne peux être qu'une instance de la classe maClasse2 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 List<ObjetPerso> maListe = new List<ObjetPerso>(); maList.Add(new ObjetPerso(new MaClasse1(1), 1)); maList.Add(new ObjetPerso(new MaClasse1(2), 1)); maList.Add(new ObjetPerso(new MaClasse2(1), 2)); maList.Add(new ObjetPerso(new MaClasse2(2), 2));
J'ai une exception InvalidCastException :
Code : Sélectionner tout - Visualiser dans une fenêtre à part objetClass2 = maList.Single(t => t.niveau == 2 && ((objetClass2)t).ID == 1);
Vous auriez une idée sur la source de ce problème? Y a-t-il un truc qui cloche dans ma manière de procéder?Impossible d effectuer un cast de l objet de type 'MaClasse1'en type 'MaClasse2'.
Merci!
Partager