Bonjour !
Je suis un petit nouveau de deux jours en C# alors pardonnez mon ignorance.
Je cherche à construire une petite classe toute simple. Cette classe me retourne un tableau de nombres aléatoires, elle instancie l'interface IEnumerable et IEnumerator pour pouvoir passer le tableau de la classe comme argument à MSChart.
La classe que j'ai construite fonctionne très bien, mais pour l'instant mon constructeur ne me retourne qu'un tableau à 1 dimension :
J'aurais aimé avoir un second constructeur mais qui cette fois prenne deux arguments, disons dimL et dimC pour me retourner une matrice de nombres aléatoires. Je sais comment surcharger un constructeur, mais là en plus il faudrait que le type de l'objet retourné soit différent, là est mon problème. De plus, j'imagine qu'il va y avoir un problème avec l'itérateur et l'indexeur, alors comment est-ce que je peux "dealer" avec ça ?
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 private class NbAleaUnif : IEnumerable { private double[] tab_alea; //tableau des nombres aléatoires private int dimension; //dimension du tableau public NbAleaUnif(int dim) //constructeur { dimension = dim; tab_alea = new double[dim]; Random alea = new Random(); //générateur de nombres aléatoires for (int i = 0; i < dim; i++) { tab_alea[i] = alea.NextDouble(); } } public IEnumerator GetEnumerator() { return new nombreAleatoireEnumerator(tab_alea); } private class nombreAleatoireEnumerator : IEnumerator { private int _index; private double[] _alea; public nombreAleatoireEnumerator(double[] numbers) { _alea = numbers; _index = -1; } public void Reset() { _index = -1; } public bool MoveNext() { _index++; return _index < _alea.Length; } public object Current { get { if(this._index < _alea.Length) return _alea[_index]; else throw new IndexOutOfRangeException(); } } } }
Merci pour vos réponses éclairées !!
Partager