Bonjour à tous, je vous remercie d'avance pour lire ma question.
Mon problème est assez simple. J'ai un tableau d'instances de ma classe parents.
Je souhaite redéfinir ces instances dynamiquement avec un type de la classe fille.
Je vous donne un code exemple pour que ce soit plus simple :
La définition de mes classes. Les classes filles ont un construteur à partir d'une instance de la classe parente.
Voilà mon main :
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77 public interface IDisplay { void Display(); } public class ClassParent : IDisplay { public int iParent; public ClassParent() { } public ClassParent(int i) { iParent = i; } public ClassParent(ClassParent cP) { this.iParent = cP.iParent; } public virtual void Display() { Console.WriteLine("Mere: " + iParent.ToString()); Console.WriteLine(""); } } public class ClassFillePetite : ClassParent { public int iFilleInt; public ClassFillePetite() { Random rdm = new Random(iParent); iFilleInt = (int)(rdm.NextDouble() * 10); } public ClassFillePetite(ClassParent m) : base(m) { Random rdm = new Random(m.iParent); iFilleInt = (int)(rdm.NextDouble() * 10); } public override void Display() { Console.WriteLine("FillePetite: " + iParent.ToString() + " " + iFilleInt.ToString()); Console.WriteLine(""); } } public class ClassFilleGrande : ClassParent { public double iFilleDouble; public ClassFilleGrande() { Random rdm = new Random(iParent); iFilleDouble = (rdm.NextDouble() * 10); } public ClassFilleGrande(ClassParent m) : base(m) { Random rdm = new Random(m.iParent); iFilleDouble = (rdm.NextDouble() * 10); } public override void Display() { Console.WriteLine("FilleGrande: " + iParent.ToString() + " " + iFilleDouble.ToString()); Console.WriteLine(""); } }
Je voudrais savoir si la méthode utilisée est correcte et vos avis, merci !
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
16
17
18
19
20
21
22
23
24
25
26
27 static void Main(string[] args) { ClassParent[] listMere = new ClassParent[5]; // Création d'un tableau de parents listMere[0] = new ClassParent(10); listMere[1] = new ClassParent(1); listMere[2] = new ClassParent(4); listMere[3] = new ClassParent(7); listMere[4] = new ClassParent(2); for(int i=0; i<5; i++) { if (listMere[i].iParent < 5) { listMere[i] = new ClassFillePetite(listMere[i]); } else { listMere[i] = new ClassFilleGrande(listMere[i]); } } for (int i = 0; i < 5; i++) { listMere[i].Display(); }
Partager