Ho scritto una classe che rappresenta una struttura dati a grafo. Non ha niente di particolare, per evitare di incollarvi decine di linee di codice vi dico che al suo interno contiene semplicemente una lista di Nodi.
Poi ho deciso di implementare IEnumerator ed IEnumerable. Solo mi chiedevo se fosse possibile implementarli più volte, con tipi diversi, per poter utilizzare il foreach con tipi diversi.
Al momento ho questo
codice:
public Class GGraph<T> : IEnumerator<T>, IEnumerable<T>
{
private List<GGraph<T>.Node> _nodes;
//.... Tutti i vari metodi

//implemento interfacce
int _position
public T Current{ get {return _nodes[_position].value;} }
public void Reset() {_position=-1;}
//altri metodi d'interfaccia
}
quello che posso fare in questo modo è:
codice:
GGraph<int> grafo = new....
foreach (int num in grafo)
{ fai qualcosa}
Ma vorrei mi fosse possibile fare anche
codice:
GGraph<int> grafo = new....
foreach (GGraph<int>.Node node in grafo)
{ fai qualcosa}
Ma non so come fare, perchè non posso scrivere due metodi Current che tornino due tipi diversi