2009-10-23 7 views
1
Surcharge

Je ne peux pas surcharger GetEnumerator() commede GetEnumerator

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

{ 

    .... some code 

} 

Répondre

3

Non. Créez simplement une méthode normale, par ex.

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

Merci de ce que vous avez dit. – udana

1

GetEnumerator ne prend pas de paramètres.

2

Vous pouvez proposer une surcharge pour la méthode GetEnumerator, mais il ne peut pas faire partie de la mise en œuvre IEnumerable.

+0

Merci Romain Verdier – udana

0

Que diriez-vous d'une méthode d'extension?

i.e. .:


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 qu'est-ce que vous essayez de faire dans cette "surcharge"? Si vous voulez fusionner ces deux tableaux de T, IEnumerable a déjà un certain nombre de méthodes qui prennent des méthodes. Assurez-vous de ne pas réinventer la roue!