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 :

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;
    }
Ils sont contenus dans des listes du genre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
List<MonPoint1> listePt1 ;
List<MonPoint2> listePt2 ;
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
4
5
6
7
8
 
public void afficherPoints ( IList<IPoint> listePoint )
{
  foreach( IPoint in listePoint)
{
   drawPoint( IPoint.x , IPoint.y );
}
}
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
 List<MonPoint1> listePt1 ;
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
List<MonPoint2> listePt2 ;
en donc je ne peux pas appeler ma fonction "générique"

Comment faire ?
précision : je ne veux pas mettre du code d'affichage dans ma classe IPoint

Losformen