Question

Je ne peux pas surcharger GetEnumerator () comme

IEnumerator<T> IEnumerable<T>.GetEnumerator<T> ( T[] val1,T[] val2)

{

  .... some code

}
Était-ce utile?

La solution

Non. Créez simplement une méthode normale à la place, par exemple.

IEnumerator<T> MyCustomEnumerator<T>(T[] val1, T[] val2) {
    // some code
}

Autres conseils

Vous pouvez proposer une surcharge pour la méthode GetEnumerator , mais elle ne peut pas faire partie de l'implémentation IEnumerable .

GetEnumerator ne prend pas de paramètres.

Qu'en est-il d'une méthode d'extension?

c'est-à-dire:


public static class IEnumeratorExtensions
{
    public static IEnumerator<T> GetEnumerator<T>(this IEnumerable<T> ie,
        T[] val1, T[] val2)
    {
        //your code here
    }
}

...
string[] s1;
string[] s2;

var qry = from s in new string[]{"1", "2"}
          select s;

qry.GetEnumerator(s1, s2);
...

Mais que tentez-vous de faire dans cette "surcharge"? Si vous souhaitez fusionner ces deux tableaux de T, IEnumerable a déjà un certain nombre de méthodes qui utilisent des méthodes. Assurez-vous de ne pas réinventer la roue!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top