Salut à tous,
Je coince sur un petit problème sur les interfaces IEnumerable<T> et IEnumerator<T>. J'ai lu quelques articles dessus, je sais le faire sans souci en Java, et là, ça veut pas se compiler :
Message d'erreur pour la classe Rubrique:
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 public class Rubrique : IEnumerable<Rubrique> { public IEnumerator<Rubrique> GetEnumerator() { Iterateur it = new Iterateur(this); foreach (Rubrique r in Iterateur) { yield return r; } } public List<Rubrique> _myRubriquesEnfants = new List<Rubrique>(); } public class Iterateur : IEnumerator<Rubrique> { private List<Rubrique> listAllRubrique = new List<Rubrique>(); int index = 0; public Iterateur(Rubrique Rubrique) { remplir(Rubrique); } public Rubrique Current { get { return listAllRubrique[index]; } } public bool MoveNext() { if (index < listAllRubrique.Count) { index++; return true; } else { return false; } } public void Reset() { index = 0; } private void remplir(Rubrique Rubrique) { listAllRubrique.Add(Rubrique); foreach (Rubrique rubrique in Rubrique._myRubriquesEnfants) { remplir(rubrique); } } public void Dispose() { } }
Message d'erreur pour la classe Iterateur:'CoreNet.BusinessLogicLayer.Rubrique' n'implémente pas le membre d'interface 'System.Collections.IEnumerable.GetEnumerator()'. 'CoreNet.BusinessLogicLayer.Rubrique.GetEnumerator()' est soit static, non public, soit il ne possède pas le type de retour correct
Quelqu'un à des idées ? ça doit être un truc tout bête mais je pige pas'CoreNet.BusinessLogicLayer.Iterateur' n'implémente pas le membre d'interface 'System.Collections.IEnumerator.Current'. 'CoreNet.BusinessLogicLayer.Iterateur.Current' est soit static, non public, soit il ne possède pas le type de retour correct.![]()
Partager