Bonjour,
j'ai un problème de conception, je ne sais pas trop comment le résoudre.
Je suis débutant en C#/C++ et j'ai beau avoir regardé en diagonale les design patterns, je bloque.
voilà mon problème :
J'ai des points :
Ils sont contenus dans des listes du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 public abstract class IPoint { public double x, y; public int id; } public class MonPoint1 : IPoint { string name; } public class MonPoint2 : IPoint { int arc; }
et je veux les afficher dans une fonction "générique", sachant que pour les afficher c'est la même chose
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 List<MonPoint1> listePt1 ; List<MonPoint2> listePt2 ;
voilà, ça c'est la théorie, sauf que - et c'est pas illogique - le compilateur ne veut pas me convertir
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public void afficherPoints ( IList<IPoint> listePoint ) { foreach( IPoint in listePoint) { drawPoint( IPoint.x , IPoint.y ); } }
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part List<MonPoint1> listePt1 ;en
Code : Sélectionner tout - Visualiser dans une fenêtre à part List<MonPoint2> listePt2 ;donc je ne peux pas appeler ma fonction "générique"
Code : Sélectionner tout - Visualiser dans une fenêtre à part IList<IPoint>
Comment faire ?
précision : je ne veux pas mettre du code d'affichage dans ma classe IPoint
Losformen
Partager