Surcharge de GetEnumerator
-
06-07-2019 - |
Question
Je ne peux pas surcharger GetEnumerator () comme
IEnumerator<T> IEnumerable<T>.GetEnumerator<T> ( T[] val1,T[] val2)
{
.... some code
}
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